Если у меня есть коллекция Backbone и я хочу создать копию этой коллекции с отфильтрованными определенными элементами, как я могу это сделать, сохранив скопированный экземпляр как Backbone.Collection?
Пример:
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
, но как только я начинаю фильтровать, методы итерации возвращают массив.