Это правильная реализация шаблона MVC backbone.js? - PullRequest
2 голосов
/ 05 июля 2011

Я реорганизую старое приложение с backbone.js .

При просмотре туто TodoList, но я все еще не уверен, как все должно совмещаться.

На данный момент у меня есть:

  • A GlobalController, который инициализирован, он обрабатывает глобальную маршрутизацию для всего приложения и инициализацию других объектов.

  • Эта GlobalController инициализирует GlobalAppView (глобальное действие для всего приложения, например, как обрабатывать щелчки ajax) и после этого все остальные контроллеры в моем приложении.

  • Контроллеры Thoses, такие как TagController, инициализируют свои собственные коллекции (BlueTagList и RedTagList, расширяющие коллекцию App.TagList), хранящиеся в пространстве имен window (если оно должно бытьв пространстве имен контроллера?).

  • Затем контроллер вызывается где-то в моих представлениях, TagsController->render('BlueTagListView', {el: '#container', collection : BlueTagList, data : ...});

Есть ли потоки вэта схема?Спасибо.

1 Ответ

1 голос
/ 05 июля 2011

Лично я думаю, что все было бы яснее, если бы Backbone.js немного переименовал вещи.

Models      ->  Models
DOM subtrees->  Views ( view.el in the backbone case )
Views       ->  Controllers
Controllers ->  HashchangeController ( A specialized type of controller )

Backbone.js - это инфраструктура MVC, но это просто странное соглашение об именах. Это как бы подсказывает, что вы должны использовать Backbone.Controller, иначе вы просто будете делать модель / представление. Но не чувствуйте давления, чтобы сделать это.

Это совершенно нормально для создания приложения без Backbone.Controller, если вы не действительно нужны закладки для ссылок. Если вы делаете то круто, но это не обязательно. Панель URL - это просто еще один виджет на странице, на который вы можете написать контроллер для ответа.

Возможно, если подумать о ваших компонентах, как указано выше, вам будет легче.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...