5

Marionette.CompositeViewコレクションをレンダリングする必要があるがあります。このコレクションをフィルタリングしてアクションを実行
したいと思います。 次のコード(1)で試しましたが、次のエラー(2)が発生します。fetchadd

どんなアイデアでも、ありがとう。


(1)

var myCompositeView = Marionette.CompositeView.extend({

    initialize: function () {
        this.collection = app.taskCollection.where({type: 'todo'});
    }

});

(2)

// Uncaught TypeError: Object  has no method 'on'
4

1 に答える 1

8

Marionette の CompositeView と CollectionView はどちらも、collection設定が有効な Backbone.Collection であることを想定しています。Backbone のコレクションのwhereメソッドは Backbone.Collection を返さず、配列を返します。したがって、結果をコレクションでラップする必要があります。


initialize: function(){
  var filtered = app.taskCollection.where({type: 'todo'});
  this.collection = new Backbone.Collection(filtered);
}

もちろん、Backbone.Collection から拡張された任意の型を使用できます。この例でコレクションであることのポイントを説明したかっただけです。

于 2012-09-28T03:40:34.543 に答える