在Backbone.js中处理模型更新服务器响应

时间:2011-11-18 18:41:53

标签: backbone.js

Backbone.js模型在页面本地更新自身及其视图 将数据传递给服务器并检查服务器的响应,如果是 服务器说“抱歉查理这不好”,该页面已经显示了数据 因为已经改变,因此没有正确地表示对象的服务器端状态。当服务器返回错误时,在Backbone.js端处理此问题的正确/优雅方法是什么?

3 个答案:

答案 0 :(得分:2)

如果您正在直接编辑模型并尝试同步它,并同时在应用程序的其他位置使用它,那么这可能会导致一个问题世界。

在许多情况下,最好克隆模型进行编辑,然后在成功同步时,将克隆的属性重新应用于原始模型。

您只需致电:

即可获得克隆模型
var clonedModel = originalModel.clone();

然后您可以将这些属性应用于成功处理程序,如

originalModel.set(clonedModel.attributes)

答案 1 :(得分:1)

如何将成功,错误回调函数传递给更新服务器端状态的语句。可能是这样的......

this.model.save(
    {}, {
    success: function() {
        /* update the view now */
    },
    error: function() {
        /* handle the error code here */
    }
});

更高级别,您可以覆盖Backbone.sync以全局处理服务器端错误代码。

答案 2 :(得分:0)

使用

model.save({wait: true});

来源:http://backbonejs.org/#Model-save