有没有办法防止骨干在更改属性(骨干版本> 1)后清除changedAttributes对象。 我只是在添加一些数据后模型更改后再尝试增加模型的版本属性,然后将模型及其所有已更改的属性同步到服务器;
var version = model.get('version');
model.set(data);
if(model.changedAttributes()) {
model.set('version', version+1);
model.save();
}
然而,由于骨干网在第二组之后清除了之前的更改,并且在我的骨干同步功能中,我只发布changedAttributes骨干网,只会发布版本属性。那么是否有一种方法可以更改和属性并将其添加到已更改的属性对象而不清除它。否则我将被迫进行额外的服务器调用以添加版本
答案 0 :(得分:0)
您可以使用model.changed
(http://backbonejs.org/#Model-changed)
var version = model.get('version');
model.set(data);
if (model.changedAttributes()) {
// Remember the changes
var changes = model.changed;
// Set new version
var newVersion = version + 1;
model.set('version', newVersion);
// Extend the changes with the new version
model.changed = _.extend(changes, {
version: newVersion
});
// Save to server
model.save();
// Reset changes to only contain the new version, so we don't break anything else
model.changed = {
version: newVersion
};
}
我希望这会有所帮助。