8
此代碼沒有太多上下文,但會說明我的問題。這是一個在AMD模塊中定義的骨幹視圖,我用它來加載require.js初始化後添加backbone.js事件
本質上,我希望能夠在運行初始化後將事件添加到主幹視圖。目前我正在創建一個空的事件對象,然後在一個名爲addView的方法中,每次調用該函數時都會添加一個事件。這目前沒有工作。
我不確定事件是在什麼時間註冊的,但我懷疑我在某種程度上必須讓events
對象更改時更新它的監聽器。
有誰知道我可以如何在初始化後將事件添加到Backbone.js?
define([
'jQuery',
'Backbone'],
function ($, Backbone) {
var contentViews = new Array();
var SlidePanelView = Backbone.View.extend({
events: {},
/// <param name="targetDataAtt">The unique value inside the target's Data-Slide-Panel-Id attribute</param>
/// <param name="event">Backbone event to trigger view</param>
/// <param name="destroyOnRemove">True to destroy view when removed, False otherwise (Default true)</param>
addView: function (targetDataAtt, event, view, destroyOnRemove) {
destroyOnRemove = typeof destroyOnRemove !== 'undefined' ? destroyOnRemove : true;
this.events[event] = "viewEventFired";
contentViews[targetDataAtt] = { View: view, DestroyOnRemove: destroyOnRemove };
},
viewEventFired: function (e) {
var target = $(e.target);
var id = target.attr('data-slide-panel-id');
console.log(id);
}
});
// Return a singleton??
return new SlidePanelView;
});