0

我正在努力在主干中使用 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 元素的单个项目,但它创建的只是一个空列表项。有人看到我做错了什么明显的事情吗?

4

1 回答 1

2

您在 {{description}} 之后缺少一个结束单引号,这可能会破坏模板。

移动以回答每个请求 (我无法将评论移至问题)

于 2013-04-30T22:27:49.180 回答