Backbone.js 使用修补程序保存模型只会更新上次更改的特性

Backbone.js 使用修补程序保存模型只会更新上次更改的特性,backbone.js,model,Backbone.js,Model,我在以后坚持完全不同的模型更改时遇到问题 当我的视图捕捉到某个字段的更新时,它会触发关联模型的更新。 以下是一些粗略的psuedo代码: [snip视图样板文件] “事件”:{ “更改输入”:功能(事件){ 触发器(“字段:更新”{ “模型”:这个模型, “字段”:event.target }); }, “单击按钮”:函数(){ 触发器(“保存”,{“模型”:this.model}; } } 在事件管理器中: [snip事件管理器素材] 打开(“字段:更新”,函数(eventData){ va

我在以后坚持完全不同的模型更改时遇到问题

当我的视图捕捉到某个字段的更新时,它会触发关联模型的更新。
以下是一些粗略的psuedo代码:

[snip视图样板文件]
“事件”:{
“更改输入”:功能(事件){
触发器(“字段:更新”{
“模型”:这个模型,
“字段”:event.target
});
},
“单击按钮”:函数(){
触发器(“保存”,{“模型”:this.model};
}
}
在事件管理器中:

[snip事件管理器素材]
打开(“字段:更新”,函数(eventData){
var setter=InterfaceClass.getSetterName(eventData.field);
eventData.model[setter](eventData.field.value);
});
vent.on(“保存”,函数(eventData){
eventData.model.save(
eventData.model.changedAttributes(),
{“补丁”:true}
);
});
不幸的是,
changedAttributes
。这适用于以下工作流:更新->保存->重复,但不适用于更新->重复->保存

使用

eventData.model.save(null,{“patch”:true});
…的行为方式基本相同,仅修补模型上次修改的属性,而不是自上次
.save
以来的所有更改

现在,完全可以通过简单地对整个模型而不是补丁执行PUT来规避此问题,但我想让我的网络请求尽可能简单:

PATCH{“field”:“value”,“more”:“changes”}
在我看来,这是非常可取的

PUT{“field”:“value”,“more”:“changes”,“other”:“same”,“thing”:“same”}
如何
修补自上次保存以来模型更改的所有属性