Javascript Backbone.js模型删除失败

Javascript Backbone.js模型删除失败,javascript,backbone.js,Javascript,Backbone.js,所以现在,当我销毁一个模型,服务器返回一个错误时,无论如何都会触发销毁事件,并重置模型数据 是否有任何方法可以防止这种情况发生?您可以将{wait:true}作为选项传递给destroy(),这会导致它在从集合中删除模型之前等待服务器的响应 在将视图绑定到事件方面,您应该分别处理remove和destroy事件,因为remove事件将在服务器成功返回时触发,但如果服务器返回错误,则不会触发 或者,您可以将错误处理程序传递给model.destroy,如果服务器因任何原因出现故障,您可以使用该处理

所以现在,当我销毁一个模型,服务器返回一个错误时,无论如何都会触发销毁事件,并重置模型数据


是否有任何方法可以防止这种情况发生?

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

在将视图绑定到事件方面,您应该分别处理
remove
destroy
事件,因为
remove
事件将在服务器成功返回时触发,但如果服务器返回错误,则不会触发

或者,您可以将
错误处理程序
传递给
model.destroy
,如果服务器因任何原因出现故障,您可以使用该处理程序将模型放回原位。只需将模型添加回您的集合(如果您有),或者从服务器重新加载数据(这可能是更安全的选择)

请注意,使用此方法时,
remove
事件仍将激发,并且在您放回模型时,紧随其后的是
add
事件

thing.destroy({error: function(model, response) {
  // put the thing back in the collection, or cause the collection to reload
}});
您提到了正在重置的模型数据;我相信上面错误处理程序中的
model
参数接收原始模型,因此您仍然可以访问其数据

有关更多信息,请参阅主干文档-