Я создаю свое первое приложение Backbone.js, и я смущен тем, какую ответственность я должен отдать или скрыть от своих просмотров.
В моем примере я создаю таблицу Rich UI (похожую на YUI datagrid), которая динамически генерируется из коллекции. В моем приложении я называю это "AppTable". В моем понимании MVC я бы предположил, что будет какой-то контроллер AppTable, который найдет правильную коллекцию, захватит "немой" вид и перейдет к просмотру любой информации из коллекции, которую нужно отобразить. В этом senario представление будет делать немного больше, чем принимать предоставленные данные и изменять DOM соответственно, возможно, даже заполняя шаблон или добавляя прослушиватели событий.
Магистраль, похоже, покончит с идеей о том, что контролер будет посредником между View и Collection. Вместо этого View получает инициализацию со ссылкой на коллекцию, и на нее возлагается ответственность за обновление самой.
Я правильно понимаю эту архитектуру?
Предполагая, что я это делаю, тогда мой вопрос становится, что происходит, когда мой взгляд должен делать все больше и больше? Например, мне нужна сортировка столбцов, перетаскивание для строк, разбиение на страницы, поиск, ссылки управления таблицей (например, новые, копирование, удаление строки... и т.д.) И многое другое. Если мы придерживаемся "умной" парадигмы вида, где "Вид" напрямую связан с коллекцией, добавляются ли эти функции к объекту "Просмотр"?
Размышляя об этом, я мог видеть, как "Вид" растет от простой табличной оболочки до довольно беспорядочного зверя с множеством функциональных возможностей, связанных с ним. Итак, действительно ли View является контроллером в этом случае?