我被告知骨干模板必须包装在单个 div 中。将模板保持为多分区有什么问题吗?
没有这样的规则。您的模板可以是一组松散的独立元素。
但是,每个视图都有一个
.el
,您可以免费获得它,除非您将其设置为现有元素。重要的是要认识到视图的外部元素不是模板的一部分;相反,模板中的任何内容都会进入insideview.el
。
例如,如果您的视图定义如下:
var ExampleView = Backbone.View.extend({
tagName: 'p',
className: 'important',
template: _.template('<a href="https://backbonejs.org">Click me</a><br>Cheers'),
initialize: function() {
this.render();
},
render: function() {
this.$el.html(this.template());
return this;
},
});
然后您将得到以下 HTML 作为输出:
<p class="important">
<a href="https://backbonejs.org">Click me</a>
<br>
Cheers
</p>
一些值得带回家的信息:
<div>
;您可以覆盖 tagName
使其成为 <form>
。您还可以设置 className
、attributes
和 id
来自定义此元素,或将 el
设置为 CSS 选择器以重用现有元素。这意味着您通常可以通过省略外部包装元素来简化模板!