【发布时间】:2011-11-18 18:41:53
【问题描述】:
Backbone.js 模型在之前的页面上本地更新自身及其视图 将数据传递给服务器并检查服务器的响应,所以如果 服务器说“对不起,查理,这不好”页面已经显示了数据 已更改,因此不能正确表示对象的服务器端状态。当服务器返回错误时,在 Backbone.js 端处理此问题的正确/优雅方式是什么?
【问题讨论】:
标签: backbone.js
Backbone.js 模型在之前的页面上本地更新自身及其视图 将数据传递给服务器并检查服务器的响应,所以如果 服务器说“对不起,查理,这不好”页面已经显示了数据 已更改,因此不能正确表示对象的服务器端状态。当服务器返回错误时,在 Backbone.js 端处理此问题的正确/优雅方式是什么?
【问题讨论】:
标签: backbone.js
如果您直接编辑模型并尝试同步它,并同时在应用程序的其他地方使用它,那么这可能会导致一系列问题。
在许多情况下,最好克隆模型进行编辑,然后在成功同步后,将克隆的属性应用回原始模型。
你可以通过简单的调用得到一个克隆模型:
var clonedModel = originalModel.clone();
然后您可以将属性应用回成功处理程序中,例如
originalModel.set(clonedModel.attributes)
【讨论】:
如何将成功、错误回调函数传递给更新服务器端状态的语句。可能是这样的......
this.model.save(
{}, {
success: function() {
/* update the view now */
},
error: function() {
/* handle the error code here */
}
});
更上一层楼,您可能会覆盖 Backbone.sync 以全局处理服务器端错误代码。
【讨论】:
【讨论】: