如果我有一个 Backbone 集合,并且想要创建该集合的副本并过滤掉某些条目,我该如何在将复制的实例保留为 Backbone.Collection 的同时做到这一点?
例子:
</p>
var Module = Backbone.Model.extend();
var ModuleCollection = Backbone.Collection.extend({
model: Module
});
var modules = new ModuleCollection;
modules.add({foo: 'foo'},{foo: 'bar'});
console.log(modules instanceof Backbone.Collection); // true
var filtered = modules.filter(function(module) {
return module.get('foo') == 'bar';
});
console.log(filtered instanceof Backbone.Collection); // false
在上面的示例中,我想filtered
成为模块的过滤版本,而不仅仅是模型数组。
本质上,我想在集合实例中创建一个可以过滤掉某些模型并返回Backbone.Collection
实例的方法,但是一旦我开始过滤迭代方法就会返回一个数组。