eventos change agregar addlistener javascript events backbone.js

javascript - change - addlistener



¿Cómo agregar eventos dinámicos para ver? (2)

Backbone delega automáticamente eventos del atributo de eventos de tu vista. Estás anulando los eventos previamente delegados. Puedes llamar a $ (this.el) .delegate (...) pero también puedes hacerlo

this.delegateEvents(_.extend(this.events, {''click select'': ''changeSelect''}));

¿Cómo puedo agregar eventos dinámicos en mi clase de vista en Backbone.js?

Tengo una clase de vista con

var myViewClass = Backbone.View.extend({ events: { ''change select'': ''changeSelect'', ''click a.changeLink'': ''clearSelect'' }, initialize: function() { this.delegateEvents({''click select'': ''changeSelect''}); }, . . . });

Esto está agregando el evento {''click select'': ''changeSelect''}, pero de alguna manera {''click a.changeLink'': ''clearSelect''} no funciona.

¿Alguien sabe la solución?

Gracias rohan


Ya que estoy haciendo esto mucho, aquí está mi pequeña extensión de Backbone (basada en la respuesta de Julien y mis pruebas):

Backbone.View.prototype.addEvents = function(events) { this.delegateEvents( _.extend(_.clone(this.events), events) ); };

Utilizar:

BaseResizable.View = Base.View.extend({ initialize: function() { Base.View.prototype.initialize.call(this); this.addEvents({ ''resizestop'': ''resizeStop'' }); }, resizeStop: function(event, ui){...} }

Tendrá que hacer addEvents() nuevamente si usa undelegateEvents() .