我正在使用Todos example进行backbone.js,但是当我运行save时,toggleAllComplete函数没有遍历集合。但是,当我改为警告标题时,它会遍历整个集合。
toggleAllComplete: function () {
var done = this.allCheckbox.checked;
Todos.each(function (todo) {
/* this doesn't iterate over the collection */
// todo.save({'done': done});
/* this does */
alert(todo.get('title'));
});
}
为什么?
我也尝试使用_.each(Todos.models, function(todo) {
,但同样的问题仍然存在。
当我在chrome中使用开发人员工具时,我看到我有一个Uncaught Type Error:在backbone-localstorage.js中将此循环结构转换为JSON
this.localStorage().setItem(this.name+"-"+model.id, JSON.stringify(model));
答案 0 :(得分:0)
如果存在错误保存,则可能会阻止每个模型进行扫描。当你做警报时,没有错误,所以每个人都可以完成它的工作。
您可以尝试在save方法中引入一些回调,看看是否可以帮助您进行调试。
todo.save({'done': done}, {
success: function() { console.log(["success", arguments]); }
error: function() { console.log(["error", arguments]); }
});