【发布时间】:2014-08-17 11:35:50
【问题描述】:
我在渲染带有一些数据的车把模板时遇到了一些问题。变量占位符被替换为“0”,而不是变量值。我已经将 JS 对象记录到已编译的车把模板中,一切似乎都很好。模板本身渲染得很好,只是变量不起作用。
tpl: function(){
var template_id = "#tpl-" + this.partial,
partials_elem = $('<div>' + partials + '</div>');
return Handlebars.compile($(template_id, partials_elem).html());
},
和
this.$el.html(this.tpl(this.data)).appendTo(this.holder);
在哪里
this.data = {first_name: "test"}
(我也在那里硬编码,console.log 在 this.tpl(this.data) 之前的一行也给了我这个值)
车把模板如下所示:
<div id="tpl-test">
{{first_name}}
</div>
我正在使用 RequireJS、Backbone 和 Handlebars。
希望有人能帮帮我!
谢谢, 里克
编辑: 通过改变解决
this.$el.html(this.tpl(this.data)).appendTo(this.holder);
到:
var tpl = (this.tpl())(this.data || {});
this.$el.html(tpl).appendTo(this.holder);
【问题讨论】:
-
这与Property accessible in initialize not accessible in template? 存在相同的潜在问题,但并不是真正的重复。
标签: javascript templates backbone.js requirejs handlebars.js