【发布时间】:2013-04-24 14:33:17
【问题描述】:
我正在努力在主干中使用 Handlebars 而不是下划线。我确实遇到了渲染模板未附加到我指定的实际元素的问题。
型号:
ImageApp.Models.Image = Backbone.Model.extend({
defaults: {
imagePath: '',
description: 'No description available',
postedOn: ''
}
});
查看:
ImageApp.Views.ImageView = Backbone.View.extend({
tagName: 'ul',
initialize: function() {
this.render();
},
render: function() {
var compiledTemplate = Handlebars.compile($('#imageList-template').html());
var renderedTemplate = compiledTemplate(this.model.toJSON());
this.$el.html(renderedTemplate);
$('#imageList').html(this.el);
}
});
模板
<script id="imageList-template" type="text/x-handlebars-template">
<li>
<img src='{{imagePath}}' title='{{description}} />
</li>
</script>
我希望这会生成一个无序列表,其中包含一个包含 img 元素的单个项目,但它创建的只是一个空列表项目。有人看到我做错了什么吗?
【问题讨论】:
-
2 件事(可能是次要的) - 1)您没有包含模型,因此您可能在属性中有错字,2)您在
{{description}}之后缺少一个结束单引号,这可能打破模板。 -
@jesus.tesh 哈哈,这是单引号...哇...把它移到 anwser 我会接受,谢谢!
-
您在示例模型中与
{}不匹配。 -
@loganfsmyth 打错了,谢谢。
-
@Justin 我想,只是想确保问题很清楚。很高兴你成功了。
标签: jquery backbone.js handlebars.js