5

我有一个Marionette.CompositeView需要呈现一个集合。
我想过滤这个集合fetchadd采取行动。
我尝试使用以下代码 (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'
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 回答