我进入与主干网大规模数据结构,和整个场合的数据将通过CompositeViews很好的体现未来; 即,通过加入“补充绒毛”它们周围CollectionViews,如文件头,按钮等。
然而,我在里面彼此有很多困难嵌套CompositeViews的。 在CompositeView中的使用标准ItemView控件属性来呈现另一个CompositeView中似乎并没有在所有射击。
假设我有一个父ItemView控件 ,实例化为例如(以下德里克贝利的例子 ;假设这顶层是其中的初始fetch()
在收集将被称为):
var User = Backbone.Model.extend({});
var UserCollection = Backbone.Collection.extend({
model: User
});
var userList = new UserCollection(userData);
var schedulerCompositeView = new SchedulerCompositeView({
collection: userList
});
schedulerCompositeView.render();
this.ui.schedulerWidget.html(schedulerCompositeView.el);
而SchedulerCompositeView看起来这样的:
return Backbone.Marionette.CompositeView.extend({
template: Handlebars.compile(schedulerCompositeViewTemplate),
itemView: SchedulerDetailCompositeView,
appendHtml: function (collectionView, itemView) {
collectionView.$("#schedulerGroups").append(itemView.el);
}
});
最后,SchedulerDetailCompositeView:
return Backbone.Marionette.CompositeView.extend({
template: Handlebars.compile(schedulerDetailCompositeViewTemplate),
itemView: SchedulerDetailItemView,
appendHtml: function (collectionView, itemView) {
collectionView.$("#schedulerDetailStops").append(itemView.el);
}
});
SchedulerDetailCompositeView永远不会被实例化; 事实上,它的appendHtml()
方法似乎从来没有在各消防。
显然,还有一些其他的信息在这里失踪; 显然意图是一家集/模型传递到SchedulerDetailCompositeView,但我真的不知道什么这样做,由于嵌套CompositeViews正确的技术。
作为参考,这里是我想要实现结构的粗略样机; 如果有可能是实现这一目标比嵌套CompositeViews一个更好的方式,我当然所有的耳朵:
http://jsfiddle.net/KAWB8/