调用save()时如何刷新模型的属性 我正在使用骨干和骨干关系。请准备以下代码:
saveParams: function(event){
var self = this;
this.model.save({}, {
success: function(model, resp, xhr){
model = ...
},
error: function(model, resp){
alert(JSON.stringify(resp));
}
});
$(this.el).effect("highlight", {}, 1000);
event.preventDefault();
},
当传递回调成功时,参数“model”具有ald属性(保存前),resp保持更新属性。我如何更新模型中的属性?
model.set(resp)没有帮助我 model.set(JSON.stringify)对我没有帮助
UPD1:我使用Backbone RelationModel导致嵌套模型。成功回调调用时,嵌套模型不会刷新。我猜因为RelationModel使用Backbone.Store。
UPD2:对我来说只有这个:
model.clear()
model.set(resp);
model.change();
我知道这很难看,但它有效)
答案 0 :(得分:2)
通常你不必这样做! 如果有save()命令,Backbone会自动解析响应,如下所示: http://documentcloud.github.com/backbone/docs/backbone.html#section-41
如果您的响应数据与默认的假定主干数据结构不同,您应该查看Backbone.Model#parse
方法并覆盖它(这是一种非常简单的方法)。