我有一个 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'
最佳答案
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 扩展的任何类型。我只是想通过这个例子来说明它是一个集合的意义。
关于javascript - 使用 Marionette.CompositeView 过滤 backbone.collection 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12618025/