我正在实现一个2列布局视图,如下所示:
然而,当我定义我的牵线木偶复合视图时,似乎只允许一个itemViewContainer。
我可以这样做吗?
class List.Muse extends Marionette.ItemView
template: JST["backbone/templates/muses/index"]
class List.Muses extends Marionette.CompositeView
template: JST["backbone/templates/muses/list"]
itemView: List.Muse
itemViewContainer: ".left_col"
itemViewContainer: ".right_col"
//list template
.muses_container.two_col_wrapper.hide
.left_col
.right_col
.clearfix
.loading_container
基本上我想在我的列表模板中交替插入muses进入'left'和'right'列。是否可以在复合视图中定义?
答案 0 :(得分:1)
为此你应该使用Layout而不是CompositeView。布局允许您根据需要定义任意数量的区域,然后在每个区域中独立显示ItemView(或任何其他类型的视图)。
答案 1 :(得分:1)
您要在此处使用的Marionette
视图构造是Layout
。您可以将Layout
视为ItemView
,其中包含用于渲染子视图的区域。这样的事情就是你所追求的(在JS中。对不起,我真的不知道CS):
List.Muses = Marionette.Layout.extend({
template: JST["backbone/templates/muses/list"],
regions : {
leftColRegion : ".left_col",
rightColRegion : ".right_col"
},
onRender : function () {
this.leftColRegion.show(new List.Muse({model : someMuseModel}));
this.rightColRegion.show(new List.Muse({model : someOtherMuseModel}));
}
});