2013-04-13 74 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}