主干车把变量返回0(零)
Backbone handlebars variables return 0 (zero)
我在用一些数据渲染车把模板时遇到了一些麻烦。变量占位符被替换为"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);
我认为问题是你调用函数TPL来渲染你的对象,你应该调用函数的返回,而不是函数本身,我为此做了一个jsfiddle,将TPL函数的结果保存在一个变量中,然后像
一样使用它this.$el.html(this.compiledTemplate(this.data));
请检查这个文件http://jsfiddle.net/mfarouk/ttnL8oo5/1/
相关文章:
- 如何从jquery函数返回变量
- 返回变量作为构造函数
- 从导出的模块返回变量,并在另一个文件(NodeJS)中使用它
- 在JavaScript和knockout.js中,为什么可以'我不返回一个变量吗?为什么我必须返回变量,就好像它
- 如何从匿名函数返回变量
- 在呈现函数中返回变量
- 在设置超时后返回变量
- AngularJS在大括号中返回变量名称,而不是值
- JQuery:创建扩展返回变量未定义
- 我应该从量角器中元素的 getText() 承诺中分配一个变量或返回变量
- AJAX 在 cicle 完成后返回变量
- 如何返回变量并同时重置/删除它
- 如何从 javascript 中的回调函数返回变量
- 返回变量而不声明它的函数
- 正在从数组中返回变量名
- 从reader.onload事件返回变量
- 延迟返回变量,直到数据从Firebase同步
- 函数不't返回变量
- 如何将函数中的返回变量插入HTML表单
- Javascript 方法不返回变量