我有一个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)
非常感谢任何帮助。
答案 0 :(得分:1)
如果我理解正确,每次您的模型成功与服务器同步时,您希望使用来自服务器的数据更新客户端属性,对吧?你应该能够做到这样的事情:
在你的模特中:
initialize: function(){
this.on("sync", function(model, response, options){
this.set(response.newData);
}
}
当然,将newData
键更改为服务器用于返回所需数据的任何对象...
现在,每次模型成功与服务器同步时,它都会将其属性设置为服务器返回的内容,这将触发“更改”事件。
在您看来,您可以
initialize: function(){
this.listenTo(model, "change", this.render);
}
每次模型更改时(每次在服务器上保存后都会发生),视图将自动重新呈现。