バックボーンでモデルを更新しようとすると、モデルsave
の変更イベントが2回発生します。イベントはこの順序で発生します。
- 変化する
- リクエスト
- 変化する
- 同期
ただし、合格する(wait: true)
と、最初のchange
イベントのみが発生します。
なぜこれが起こっているのか、そして私がchange
通過せずに一度だけ発砲することができる方法を誰かが説明できます(wait: true)
か?
2つの変更イベント:
editItem: function() {
this.model.save({
name: "Howard the Duck"
});
}
1つの変更イベント:
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");
}
});