我有一个要在本地更新的 Backbone 模型,但我不知道更新是否会改变模型中的任何内容。
我不想set
在模型上运行并立即调用save
,因为可能没有任何改变。
所以理想情况下,我只是监听一个change
事件然后保存它:
var Goat = Backbone.Model.extend({
initialize: function() {
this.on('change', function(){
this.save();
});
}
});
var billy = new Goat({
gruff: true
});
billy.set('gruff', true); // doesn't do anything
billy.set('gruff', false); // fires change
这样做的问题是调用 save 然后显然会触发change
,所以我们进入了令人兴奋的无限循环。
为什么会save
触发change
?如果是这样,我实现上述目标的正确方法是什么?