このコードにはあまり文脈がありませんが、私の質問を説明します。これは、require.js 経由でロードするために使用する AMD モジュールで定義されたバックボーン ビューです。
基本的に、初期化の実行後にバックボーン ビューにイベントを追加できるようにしたいと考えています。現在、空のイベント オブジェクトを作成しており、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;
});