Backbonejs + MarionetteJD - 将Backbone列表视图转换为MarionetteJS Collection View

时间:2013-04-13 14:03:06

标签: javascript backbone.js coffeescript marionette

我的BackboneJS“列表项视图”定义如下:

  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将通过其render方法呈现其项目?

1 个答案:

答案 0 :(得分:1)

你是对的。

The collection view binds to the "add", "remove" and "reset" events of the collection that is specified.一旦发生任何这些事件,集合视图将自动更新视图,无论是部分还是内部。

您可能想知道的另一件事是在版本1.0.0中,当集合执行提取时,默认情况下它不会再触发reset事件。要获得旧行为,请传递{reset: true}