并非所有集合中的模型都被删除

时间:2013-12-27 07:03:41

标签: backbone.js model-view-controller

我有一个我要追加的收藏品。在我的应用程序中,我在注销时销毁所有模型 - 使用这段代码:

logout: function(event) {
    $.post('./logout');
    App.Contacts.each(function (contact){
        console.log(contact);
        contact.destroy();
    });
}

问题是并非所有模型都被删除。如果我再次按下注销按钮来触发此功能,它们最终会被删除。 控制台抱怨它们未定义 - 因此它没有处理它。

可能会发生什么?

3 个答案:

答案 0 :(得分:1)

为什么不使用reset。调用collection.reset()而不传递任何模型作为参数将清空整个集合。

尝试:

logout: function(event) {
    $.post('./logout');
    App.Contacts.reset();
}

答案 1 :(得分:1)

如果你要销毁所有这些事件以便发起destroyremove事件(你不会从reset获取),你可以尝试使用{{1方法。

例如,

invoke

答案 2 :(得分:0)

在你的代码中,每次销毁模型时,收集的长度都会改变,这可能会产生一些问题,所以如果你想正确处理它,请使用:

App.Contacts.reset();

正如Niranjan Borawake所说的那样。