2012-11-27 38 views

回答

6

您可以将{wait: true}作为选项传递给destroy(),这会导致它在从集合中删除模型之前等待来自服务器的响应。

在结合视图的事件,你应该分开处理removedestroy事件,当服务器成功返回remove事件将被解雇,但从来没有如果服务器返回一个错误项。

或者,您可以将error处理程序传递给model.destroy,如果服务器出于任何原因失败,则可以使用该处理程序将模型返回。无论是简单地将模型添加回集合(如果有的话),还是导致数据从服务器重新加载(这可能是更安全的选项)。

请注意,使用此方法时,remove事件仍然会触发,并且在将模型放回时会跟着add事件。

thing.destroy({error: function(model, response) { 
    // put the thing back in the collection, or cause the collection to reload 
}}); 

你提到的模型数据被重置;我相信上述错误处理程序中的model参数会接收原始模型,因此您仍然可以访问其数据。

欲了解更多信息,请参阅骨干文档 - http://backbonejs.org/#Model-destroy