En mi proyecto simple tengo 2 vistas: una vista de línea de pedido (marca) y una aplicación. He adjuntado la función que permite seleccionar varios elementos:Backbone JS: ¿se pueden ver las actualizaciones de los disparadores en otras vistas?
var BrandView = Backbone.View.extend({ ...some code... toggle_select: function() { this.model.selected = !this.model.selected; if(this.model.selected) $(this.el).addClass('selected'); else $(this.el).removeClass('selected'); return this; } }); var AppView = Backbone.View.extend({ ...some code... delete_selected: function() { _.each(Brands.selected(), function(model){ model.delete_selected(); }); return false; }, });
La cosa es, quiero saber cuántos elementos están seleccionados. En esta configuración, la selección NO está afectando al modelo y, por lo tanto, no activa ningún evento. Y desde el concepto de MVC entiendo que las vistas no deberían estar hablando directamente con otras vistas. Entonces, ¿cómo puede AppView saber que se está seleccionando algo en BrandViews?
Y más específicamente, I AppView para saber cuántos elementos se seleccionaron, por lo que si se selecciona más de 1, mostraré un menú para la selección múltiple.
Por cierto, '$ (this.el) .toggleClass ("seleccionado")'. O incluso más corto a 'this.model.selected = $ (this.el) .toggleClass ('selected'). HasClass (" selected ");'. –