我試圖拯救只有這樣做如下改變我的模型的屬性:只保存更改的屬性在Backbone.js的
this.model.set("likes", this.model.get("likes") + 1);
this.model.save();
和擴展骨幹原型就像這樣:
var backbone_common_extension = {
sync: function(method,model,options) {
options.contentType = 'application/json';
if (method == 'update') {
options.data = JSON.stringify(model.changedAttributes() || {});
}
console.log(options.data);
Backbone.sync.call(this, method, model, options);
}
};
_.extend(Backbone.Model.prototype, backbone_common_extension);
問題是model.changedAttributes()總是空的。我試過在set方法上傳遞{silent:true},但同樣的事情。在同步之前,我如何保持backbone不清除changedAttributes()?