1
我確定對此有一個合理的解釋,但我無法弄清楚 - 有一點指導將非常感謝。事件監聽器回調不會通過正常的函數調用觸發
我有下面的代碼使用主要成分:
var ExampleCollection = Backbone.Collection.extend({
exampleEvent: function() {console.log('event fired')}
});
var ExampleView = Backbone.View.extend({
el:'body',
onExampleEvent: function() {console.log('listener heard it')},
initialize: function() {
this.listenTo(this.collection,'exampleEvent',this.onExampleEvent);
}
});
var testCollection = new ExampleCollection;
var testView = new ExampleView({collection:testCollection});
在控制檯中,當我輸入命令testCollection.trigger('exampleEvent')
的onExampleEvent
回調函數的火災。但是,當我輸入命令testCollection.exampleEvent()
時,exampleEvent
函數會觸發,但onExampleEvent
回調函數不會。
如果有人可以向我解釋爲什麼發生這種情況,我將不勝感激,因爲我一直在尋找一段時間,無法弄清楚。
非常感謝提前。
那麼你是說只有當你通過collection.trigger調用事件時纔會調用監聽器,而不是在任何時候執行事件函數? – Owen
是的。 '.trigger()'的內部調用監聽器。 –