正如标题所说,有什么方法可以让我确定同步时模型上的哪些属性发生了变化?
对我而言,理想的情况是一个像change
监听器一样运作的机制,所以我有类似的东西:
var MyModel = Backbone.Model.extend({
initialize: function(){
this.on({
'sync:Name' : 'onSyncName'
})
onSyncName: function(){
alert('Name saved!');
}
}
})
据我所知,这个机制对于个别属性整体不存在,sync
只会引用整个模型本身。
答案 0 :(得分:0)
您可以使用模型中的changedAttribute函数,该函数返回从上一组更改的属性的哈希值。
var MyModel = Backbone.Model.extend({
initialize: function(){
this.on({
'sync' : 'onSync'
});
},
onSync: function(model){
_.each( model.changedAttributes(), function(value, key, list) { console.log("key" + key + " value " + value);
}
})
仅属性的同步事件不存在且没有意义,因为它是同步的整个模型
答案 1 :(得分:0)
您可以在模型中添加 validate 方法,并将其用于将已更改的属性保存在变量中:
unstaged