我有Marionette.CompositeView
需要渲染一个集合
我想在fetch
和add
行动中过滤此收藏集
我尝试使用以下代码(1),但是我收到以下错误(2)。
任何想法,谢谢。
(1)
var myCompositeView = Marionette.CompositeView.extend({
initialize: function () {
this.collection = app.taskCollection.where({type: 'todo'});
}
});
(2)
// Uncaught TypeError: Object has no method 'on'
答案 0 :(得分: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扩展的任何类型。我只是想用这个例子来说明它是一个集合。