如何删除集合中的所有模型(保留在本地存储中)?
模型是从本地存储中获取的 - 我希望模型在客户端和本地存储中都被销毁。
// Model + Collection
App.Models.Task = Backbone.Model.extend({
defaults: {
text: 'N/A'
}
});
App.Collections.Tasks = Backbone.Collection.extend({
model: App.Models.Task,
localStorage: new Backbone.LocalStorage("task")
});
// Create collection and fetch tasks
var tasks = new App.Collections.Tasks();
tasks.fetch(); // collection is now populated with 4 tasks
// Delete all models (both at client and local storage)
tasks.each(function(model) {
model.destroy();
})
从运行它开始,我只销毁了一些模型 - 发生了这个错误,并防止其余的被破坏:
Uncaught TypeError: Cannot read property 'destroy' of undefined
非常感谢任何帮助!
答案 0 :(得分:1)
我找到了解决方案:
_.invoke(tasks.toArray(), 'destroy');
显然,使用.each来销毁模型是一种不好的做法,因为内部迭代会因连续删除模型而搞砸。