Backbone:如何将模板渲染为 DOM?

Backbone: How to render template to DOM?

我是 Backbone 的新手,在渲染模板时遇到困难。
模板本身就这么不起眼:

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

Backbone 视图和模型如下所示:

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 文档,但我没有找到太多相关信息。

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

例如

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