我正在尝试遍历骨干集合并将每个项目移动到另一个集合。 在迭代和删除项目时,只删除了一半的项目。
app.cloud.each(function(model){
app.cloud.remove(model);
app.tail.add(model);
})
有人能提出解决这个问题的好方法吗?理想情况下,我不想让代码尽可能可读。
答案 0 :(得分:3)
您正在迭代它时修改集合。我不太了解骨干,但我冒昧地说这会产生奇怪的结果。
可能的解决方法是更改您的方法,以便首先通过迭代app.tail
然后清除app.cloud
app.cloud
答案 1 :(得分:1)
我不确定想要将所有模型移动到新系列的原因但是......我建议不要自己迭代它 - 让Backbone处理它。我没有尝试过以下但是应该工作。
app.tail.add(app.cloud.toJSON());
app.cloud.reset();
为了更加安全,当添加事件在app.tail中触发时,您想要重置 app.cloud。