3
當我嘗試通過save
更新Backbone中的模型時,模型上的更改事件被激發兩次。事件按這個順序被解僱。Backbone:模型上的兩個更改事件保存
- 變化
- 請求
- 變化
- 同步
然而,如果我通過(wait: true)
,僅第一change
事件被觸發。
任何人都可以解釋爲什麼會發生這種情況嗎?我如何才能讓change
只發射一次而沒有通過(wait: true)
?
兩個更改事件:
editItem: function() {
this.model.save({
name: "Howard the Duck"
});
}
一個變化事件:
editItem: function() {
this.model.save({
name: "Howard the Duck"
}, (wait: true);
}
僞代碼:
App.Views.Item = Backbone.View.extend({
initialize: function() {
this.model.on("change", this.changing, this);
this.model.on("request", this.requesting, this);
this.model.on("sync", this.syncing, this);
},
events: {
"click a": "editItem"
},
editItem: function() {
this.model.save({
name: "Howard the Duck"
});
}
changing: function() {
console.log("changing");
},
requesting: function() {
console.log("requesting");
},
syncing: function() {
console.log("syncing");
}
});
Blerg!感謝@nikoshr帶領我找到答案。因爲我的數據庫正在更新,所以我不認爲這是我的服務器上的任何內容。事實上,除了更新數據庫之外,我還返回了「true」:因此,有兩個更改事件。 – gojohnnygo