我有一個Backbone集合,當我向其添加新模型時,「添加」事件似乎沒有像我期望的那樣工作。我綁定了2個視圖來監聽集合上的添加事件,但只有一個視圖會收到事件通知,並且發生這種情況時,不會向我的服務器發送PUT請求。當我刪除第二個綁定時,另一個工作,併發送PUT請求。下面的代碼片段:Backbone Collection添加事件觸發一次
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;
這是執行的實際順序?即:在初始化flagCollectionView之前發送'click #addFlag'事件嗎?在預期事件觸發之前,將事件綁定到模型和收集很重要 –