var tmpl = _.template(template_string);
var html = tmpl(data);
// or as a one-liner, note where all the parentheses are
var html = _.template(template_string)(data);
var V = Backbone.View.extend({
el:'body',
temp: function (str) {
// reusable code
return _.template(str);
},
render: function () {
var data = { lat: -27, lon: 153 };
// calling your view method temp
var tmpl = this.temp('<%= lat %> <%= lon %>');
this.$el.html(tmpl(data));
return this;
}
});
var v = new V();
v.render();
2条答案
按热度按时间vktxenjb1#
您过去可以像这样一次解析并填充Underscore模板:
但从Underscore 1.7.0开始,
_.template
的第二个参数包含模板选项:模板
将JavaScript模板编译为可用于呈现的函数。[...]settings参数应该是包含任何应被覆盖的
_.templateSettings
的哈希值。您必须使用
_.template
编译模板,然后执行返回的函数以获得填充的模板:在您的情况下,它看起来像这样:
第一个
jpfvwuh42#
这可能很有用
1:如果你有多个模板,或者有时你使用外部模板,这样它对你在方法内部很有用,你可以编写可重用的代码