成功保存后的骨干模型

时间:2014-01-31 02:59:51

标签: backbone.js

我有一个Backbone模型对象,我成功保存。但是,保存对象后服务器的响应是另一个对象(不是我保存的同一个对象(不是我的决定,这是我必须处理的系统)):

var userActivity = new UserActivity();

...some other logic here...

userActivity.save(null, {
    wait: true,
    success: function(model, response, options) {
        dataLoader.getCachedObject(
            function(cachedObject) {
                // I want to update cachedObject object with new data coming back from the server, in a way that my views get updated on change event.
            });
        },
        error: function(model, xhr, options){
    }
});

我希望使用从服务器返回的新数据更新cachedObject对象,以便我的视图在更改事件上得到更新。

我怎样才能做到这一点?我打电话

cachedObject.parse(response)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,每次您的模型成功与服务器同步时,您希望使用来自服务器的数据更新客户端属性,对吧?你应该能够做到这样的事情:

在你的模特中:

initialize: function(){
  this.on("sync", function(model, response, options){
    this.set(response.newData);
  }
}

当然,将newData键更改为服务器用于返回所需数据的任何对象...

现在,每次模型成功与服务器同步时,它都会将其属性设置为服务器返回的内容,这将触发“更改”事件。

在您看来,您可以

initialize: function(){
  this.listenTo(model, "change", this.render);
}

每次模型更改时(每次在服务器上保存后都会发生),视图将自动重新呈现。