Questo codice non ha molto contesto, ma illustrerà la mia domanda. È una vista Backbone definita in un modulo AMD che utilizzo per caricare tramite require.jsAggiunta di eventi backbone.js dopo l'inizializzazione
In sostanza, voglio essere in grado di aggiungere eventi a una vista Backbone dopo l'esecuzione dell'inizializzazione. Al momento sto creando un oggetto eventi vuoto, quindi in un metodo chiamato addView, aggiungo un evento ogni volta che viene chiamata la funzione. Al momento non funziona.
Non sono sicuro in quale momento sono registrati gli eventi, ma sospetto che in qualche modo devo ottenere la vista per aggiornare i listener quando l'oggetto events
cambia?
Qualcuno sa come posso ottenere l'aggiunta di eventi a un Backbone.js dopo l'inizializzazione?
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;
});