0

私の 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()

CollectionView は render メソッドによってアイテムのレンダリングを行うということを理解しているので、on_sccess() メソッドを削除するだけですか?

4

1 に答える 1

1

あなたは正しいです。

The collection view binds to the "add", "remove" and "reset" events of the collection that is specified.これらのイベントのいずれかが発生すると、コレクション ビューはビューの一部または全体を自動的に更新します。

バージョン 1.0.0 では、コレクションがフェッチされるとreset、デフォルトでイベントがトリガーされなくなります。古い動作を取得するには、 を渡し{reset: true}ます。

于 2013-04-13T15:37:47.450 に答える