2013-04-23 46 views
0

我實現一個2列布局視圖,如下所示:我可以爲Marionette的compositeView創建2個itemViewContainers嗎?

enter image description here

但是看來,當我定義我木偶複合視圖,僅單個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 

本質上,我想交替插入繆斯插入我的列表模板中的'左'和'右'列。有可能在複合視圖中定義?

回答

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})); 
    } 
}); 
1

爲此,您應該使用佈局而不是CompositeView。佈局允許您根據需要定義多個區域,然後在每個區域中獨立顯示一個ItemView(或任何其他類型的視圖)。

相關問題