2013-04-13 75 views
0

我BackboneJS「列表項視圖」的定義如下:Backbonejs + MarionetteJD - 轉換骨幹列表視圖MarionetteJS集合視圖

class TagListView extends Backbone.View 
    el:"#tags" 

    render: => 
     @collection = new TagCollection 
     @collection.fetch_data 
     order_by : "name" 
     , => 
     @on_success() 

    on_success: => 
     view_arr = []  
     @collection.each (tag_model) => 
     tag = new TagView {model: tag_model} 
     view_arr.push tag.render().el 
     @$el.empty().append view_arr 

我將如何改變這MarionetteJS集合看法?我嘗試了以下方法,但似乎並不奏效?

class TagListView extends Marionette.CollectionView 
    el:"#tags" 
    itemView:TagView 

    onBeforeRender: => 
     @collection = new TagCollection 
     @collection.fetch_data 
     order_by : "name" 
     , => 
     @render() 

我只是去掉on_sccess()方法,因爲我的理解是,將的CollectionView它的渲染方法做它的項目的渲染?

回答

1

你是對的。

The collection view binds to the "add", "remove" and "reset" events of the collection that is specified.一旦這些事件發生,收集視圖將自動更新視圖,無論是零件還是實體。

您可能想知道的另一件事是在版本1.0.0中,當集合獲取時,默認情況下不會再觸發reset事件。要獲得舊的行爲,請通過{reset: true}