Backbone コレクションがあり、それに新しいモデルを追加すると、「追加」イベントが期待どおりに機能しないようです。コレクションの追加イベントをリッスンするように 2 つのビューをバインドしましたが、イベントの通知を受け取るのは 1 つだけのようです。これが発生すると、PUT 要求はサーバーに送信されません。2 番目のバインドを削除すると、もう 1 つのバインドが機能し、PUT 要求が送信されます。コード スニペットは次のとおりです。
var FlagList = Backbone.Collection.extend({
model: Flag // model not shown here... let me know if it would help to see
});
var FlagCollectionView = Backbone.View.extend({
el: $('ul.#flags'),
initialize: function() {
flags.bind('add', this.addFlag, this); // this one doesn't fire!!
},
addFlag: function(flag) {
alert("got it 1"); // I never see this popup
}
});
var AddFlagView = Backbone.View.extend({
el: $("#addFlagPopup"),
events: {
"click #addFlag": "addFlag"
},
initialize: function() {
flags.bind('add', this.closePopup, this); // this one fires!!
}
addFlag: function() {
flags.create(new Flag);
},
closePopup: function() {
alert("got it 2"); // I see this popup
}
});
var flags = new FlagList;
var addFlagView = new AddFlagView;
var flagCollectionView = new FlagCollectionView;