我正在使用 Backbone 0.9.2,并且我有一个使用 twitter 引导程序的小胡子模板,看起来像这样:
<div class="modal hide something" id="something-modal">
...
</div>
我试图摆脱<div>
主干添加的额外内容,因为我希望视图是 1 对 1 作为我的模板。我的渲染函数看起来像:
render: function(){
var $content = $(this.template()),
existing_spots = $content.find('.spots-list'),
new_spot;
this.collection.each(function (spot) {
new_sweetspot = new SpotView({ model: spot });
existing_spots.append(new_spot.render().el);
});
$content.find("[rel=tooltip]").tooltip();
this.setElementsBindings($content);
//this.$el.html($content).unwrap('div'); // didn't work!
this.$el.html($content);
console.log(this.$el);
return this;
}
我知道通过添加:
tagName: "div",
className: "modal",
我会摆脱它,但我希望视图元素的控制属于模板,而不是 JS 代码。
this.SetElement
将导致列表不更新(它将为空),this.$el = $content;
也不会工作。