我认为您最好将手风琴留在一个视图中,然后在每个面板内有一个单独的视图。毕竟,<h2>
s 是手风琴整体的控件,而不是特定面板的控件。
你会有一些像这样的每个面板视图:
var P = Backbone.View.extend({
render: function() {
// Add the panel's content to this.$el (which is a <div> by default).
return this;
}
});
然后是这样的手风琴视图:
var A = Backbone.View.extend({
render: function() {
var panels = [ ... ];
for(var p, i = 0; i < panels.length; ++i) {
p = new P({ ... });
this.$el.append('<h3><a>' + panels[i] + '</a></h3>');
this.$el.append(p.render().el);
}
// The accordion wants to know the sizes of things so
// we let the DOM sort itself out before binding the
// accordion.
var _this = this;
setTimeout(function() { _this.$el.accordion() }, 0);
return this;
}
});
然后你可以简单$('#something').append((new A).render().el)
地一切都很好,同时把所有东西都留在它应该在的地方。
您还可以向视图添加一个title
方法P
,然后A
询问面板它的名称/标题/标题应该是什么,以便所有面板信息都很好地包含在每个面板视图中。
演示:http: //jsfiddle.net/ambiguous/Y49W8/