【问题标题】:Handlebars & Backbone - backbone html not rendering correctlyHandlebars & Backbone - 主干 html 无法正确呈现
【发布时间】: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


【解决方案1】:

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

转为按要求回答 (我无法将评论移至问题)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多