没有设置回调的骨干保存

Bjo*_*orn 6 javascript backbone.js

我的网络应用程序中有拖放功能.当用户在拖放后释放鼠标时,对象的位置将使用模型上的Backbone的save()方法保存到服务器.当服务器响应时,它会触发模型上带有返回属性的set().但是,在服务器处理请求的时间内,用户可能已经再次将对象拖动到其他位置.这会导致问题,因为来自服务器的响应现在将覆盖浏览器中对象的设置.

有没有办法防止Backbone在save()之后从服务器获得响应后执行set()?

Bjo*_*orn 0

我现在使用以下解决方案:

覆盖模型的默认解析方法:

Backbone.Model.prototype.parse = function(resp, options) {
    if(options.parse)
        return resp;
};
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用 save 方法并将属性“parse”设置为 false,以防止 ajax 响应覆盖您当前的值:

MyModel.save({}, { parse: false });
Run Code Online (Sandbox Code Playgroud)