In meinem einfachen Projekt habe ich 2 Ansichten - eine Werbebuchung (Marke) und App. Ich habe Funktion hinzugefügt, die die Auswahl mehrerer Elemente ermöglicht:Backbone JS: Kann man Aktualisierungen in anderen Ansichten auslösen?
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; }, });
Das ist, möchte ich wissen, wie viele Elemente ausgewählt sind. Bei dieser Einstellung wirkt sich die Auswahl NICHT auf das Modell aus und löst somit keine Ereignisse aus. Und vom MVC-Konzept verstehe ich, dass Ansichten nicht direkt mit anderen Ansichten kommunizieren sollen. Wie kann AppView wissen, dass in BrandViews etwas ausgewählt wird?
Und genauer, ich AppView zu wissen, wie viele Elemente ausgewählt wurden, wenn also mehr als 1 ausgewählt ist, zeige ich ein Menü für die Mehrfachauswahl.
BTW, '$ (this.el) .toggleClass ("ausgewählt")'. Oder noch kürzer zu 'this.model.selected = $ (this.el) .toggleClass ('selected'). HasClass (" selected ");.. –