Using Backbone templates in Jade
I was wondering how to use Backbone templates in Jade, because there is a problem when using them because of syntax. An example:
The problem
Example.html
div(style="display: none;")#example
a(id='document_')
Example.js
var SampleView = Backbone.View.extend({
template: _.template($('#example').html()),
render: function() {
var template = this.template({
id: this.model.id,
title: this.model.get('title')
});
$(this.el).html(template);
return this;
}
});
This doesn’t work because Jade is compiling the content and the variables disappear.
The solution
There are a few tags that Jade doesn’t compile it: script and style.
When you use script, remember include the attribute type=’text/template’ else its code will be evaluate as Javascript and it will be generate error messages.
The example working:
script(type='text/template')#example
a(id='document_')
More info Jade documentation