从backbone.js集合中删除每个模型

时间:2011-08-12 20:18:35

标签: javascript backbone.js

我正在尝试遍历骨干集合并将每个项目移动到另一个集合。 在迭代和删除项目时,只删除了一半的项目。

app.cloud.each(function(model){
    app.cloud.remove(model);
    app.tail.add(model);
})

有人能提出解决这个问题的好方法吗?理想情况下,我不想让代码尽可能可读。

2 个答案:

答案 0 :(得分:3)

您正在迭代它时修改集合。我不太了解骨干,但我冒昧地说这会产生奇怪的结果。

可能的解决方法是更改​​您的方法,以便首先通过迭代app.tail然后清除app.cloud

将所有内容添加到app.cloud

答案 1 :(得分:1)

我不确定想要将所有模型移动到新系列的原因但是......我建议不要自己迭代它 - 让Backbone处理它。我没有尝试过以下但是应该工作。

app.tail.add(app.cloud.toJSON());
app.cloud.reset();

为了更加安全,当添加事件在app.tail中触发时,您想要重置 app.cloud。