我一直在使用Marionette几周,刚刚发现了Backbone Relational,所以我想弄清楚如何整合这两者。理想情况下,我想使用复合视图来呈现这样的结构数据,其中每个“项目”都有自己的项目视图:
list : {
name : 'List 1',
items : [
item1 : {
name : 'Item 1',
id : 1
},
item2 : { ... }
item3 : { ... }
]
}
通常使用复合视图,您需要拥有一组模型,它们将迭代以呈现每个项目。通过关系,我只有一个模型(列表),并且该模型中有一个集合(项目)。是否可以使用Marionette的视图来渲染它,或者我是否需要使用简单的Backbone视图并自己处理渲染和迭代?
答案 0 :(得分:19)
这很常见,而且很容易做到。在CompositeView定义中,您可以指定要在initialize方法中使用的集合。
Backbone.Marionette.CompositeView.extend({
// ...
initialize: function(){
this.collection = this.model.get("childcollection");
}
});