我有一个问题在以后持续不同的模型更改。
当我的视图捕获字段的更新时,它会触发关联模型的更新 这是一些粗略的伪代码:
[ snip view boilerplate ]
"events": {
"change input": function( event ){
EventManager.trigger( "field:update", {
"model": this.model,
"field": event.target
});
},
"click button": function(){
EventManager.trigger( "save", { "model": this.model };
}
}
在活动经理中:
[ snip event manager stuff ]
vent.on( "field:update", function( eventData ){
var setter = InterfaceClass.getSetterName( eventData.field );
eventData.model[ setter ]( eventData.field.value );
});
vent.on( "save", function( eventData ){
eventData.model.save(
eventData.model.changedAttributes(),
{ "patch": true }
);
});
不幸的是,changedAttributes
only returns the changed attributes since the last .set
。这适用于以下工作流程: update - > 保存 - > 重复,但根本不是更新 - > 重复 - > 保存
使用...
eventData.model.save( null, { "patch": true } );
...的行为方式基本相同,仅修补模型的 last 修改后的属性,而不是自上次.save
以来的所有更改。
现在,完全有可能通过简单地使用整个模型而不是PATCH执行PUT来解决这个问题,但我希望尽可能简化网络请求:
PATCH {"field": "value", "more": "changes"}
在我看来是非常优选的
PUT {"field": "value", "more": "changes", "other": "same", "thing": "same"}
自上次保存以来,我的模型有哪些<{1}} 所有更改了属性?