我稍后修改了 list.html 示例https://github.com/tbranyen/backbone.layoutmanager/blob/master/examples/list.html:
http://jsfiddle.net/qhoc/nQJz6/
如果您查看Firebug,可以看到div
和ol
之间还有li
。
我知道我可以通过将li
移出模板并在tagName: 'li'
视图中使用Items
来摆脱它。但这意味着我必须在某些地方更改我的代码。另外,我更倾向于将li
保留在设计流程一致性的模板中。
如何在不修改模板的情况下摆脱此div
?
答案 0 :(得分:2)
覆盖partial
功能并执行jQuery#find
,如下所示:
Backbone.LayoutManager.configure({
partial: function(root, name, el, append) {
// If no selector is specified, assume the parent should be added to.
var $root = name ? $(root).find(name) : $(root);
// Use the append method if append argument is true.
// Set the element to append to be the first child.
this[append ? "append" : "html"]($root, $(el).children().first());
}
});
此方法可以在全局(上层)或本地实例上覆盖。
您还需要调整afterRender
以使用新元素:
Backbone.LayoutView.extend({
afterRender: function() {
this.setElement(this.el.firstChild);
this.delegateEvents();
}
});
此处提供更多信息:http://tbranyen.github.com/backbone.layoutmanager/#configuration/defaults