В моем простом проекте у меня есть 2 представления - представление позиции (бренд) и приложение. Я добавил функцию, позволяющую выбирать несколько элементов:
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; }, });
Дело в том, что я хочу знать, сколько элементов выбрано. В этой настройке выбор НЕ влияет на модель и, следовательно, не запускает никаких событий. И из концепции MVC я понимаю, что представления не должны напрямую общаться с другими представлениями. Итак, как AppView может знать, что что-то выбрано в BrandViews?
В частности, я использую AppView, чтобы узнать, сколько элементов было выбрано, поэтому, если выбрано более 1 элемента, я показываю меню для множественного выбора.