Backbone:如何将模板呈现给DOM?

时间:2015-05-27 20:40:56

标签: javascript backbone.js

我是Backbone的新手并且在渲染模板方面遇到了困难 模板本身就像这样不引人注目:

<script id="messageTemplate" type="text/template">
    Message: <%= content %>
</script>

Backbone视图&amp;模特看起来像这样:

var Message = Backbone.Model.extend({
    defaults: {
        content: 'Default message'
    }
});

var MessageView = Backbone.View.extend({
    tagName: 'p',
    template: _.template($('#messageTemplate').html()),
    initialize: function() {
      this.render();
    },
    render: function() {
      this.$el.html(this.template(this.model.toJSON()));
      return this;
    }
});

var msg = new Message();
var msgView = new MessageView({model: msg});

我想没什么特别的 - 只是一个简单的模型和使用模板的视图,用msg中的内容替换占位符。

使用personView.el在控制台中检查时,我会看到正确的HTML字符串,但应该如何将其呈现给DOM?

当然我已经阅读了Backbone和Underscore文档,但我对此没有太多了解。

1 个答案:

答案 0 :(得分:2)

骨干视图包含对el的引用,{{3}}可能是也可能不是页面DOM的一部分。如果不是那么你可以像其他任何元素一样附加它。

例如

var msg = new Message();
var msgView = new MessageView({model: msg});
$('#someParentElement').append(msgView.el);