Estoy creando una aplicación en Backbone.js que tiene una vista principal y varias vistas secundarias. Las vistas secundarias contienen enlaces que escuchan y realizan una función.¿Por qué los eventos no se activan después de la segunda representación en Backbone.js?
El elemento primario almacena una lista de todas las vistas secundarias. En la función de hacer que, después de que se hace calculando su propio código HTML, se hace lo siguiente:
$(this.el).html(html);
for (var i = 0; i < this.views.length; i++){
$('.children', this.el).append(this.views[i].render().el);
}
RESPUESTA: El problema era que yo estaba creando el enlace durante el render. Es decir. en la primera representación (que se llamó desde el init), el evento se enlazó con éxito al enlace. Sin embargo, dado que todas las siguientes llamadas de renderizado recrean el elemento completo, el nuevo enlace no tenía el controlador asociado. Esto se resolvió a través de la solución @ Tom Tu de la adición a la this.delegateEvents()
rendir
añade un poco más detalles, espero que ayude –
que es una muy buena idea, pero agregó el remove codigo arriba. Además, los eventos no se pueden establecer mal, o no se dispararía en primer lugar. – chacham15