Я только начал использовать backbone.js и добавляю несколько базовых методов для расширения коллекции, позволяя мне перебирать коллекцию и сохранять все модели, а также перебирать коллекцию для уничтожения всех моделей. Я понимаю, что массовые обновления не являются RESTful, но я обновляю только локальное хранилище, поэтому не думал, что будет многократное обновление.
В моем базовом приложении коллекция насчитывает 9 моделей.
Когда я вызываю collection.saveModels (), он правильно регистрирует длину коллекции и правильно сохраняет все модели.
Когда я вызываю collection.deleteModels (), он корректно записывает длину коллекции, но пропускает каждую вторую модель (то есть 2-ю, 4-ю, 6-ю, 8-ю). Каждый раз, когда удаляется нажатие, он продолжает удалять только нечетный индексированный элемент, причем последним удаляемым элементом является восьмой исходный элемент.
Возможно ли, что я неправильно использую каждую функцию, несмотря на то, что она отлично работает при сохранении?
_.extend(Backbone.Collection.prototype, Backbone.Events, {
saveModels : function() {
console.log(this.length);
this.each(function(model){
console.log('saving model ' + model.get('name'));
model.save();
});
},
deleteModels : function() {
console.log(this.length);
this.each(function(model){
console.log('deleting model ' + model.get('name'));
model.destroy();
});
}
});
и они называются так: mycollection.saveModels();
и mycollection.deleteModels();
Я понимаю, что могу перебирать коллекцию по длине, но я бы предпочел использовать встроенный метод, где это возможно.