У меня есть веб-приложение с require.js, backbone.js и jquery.
Краткая структура приложения выглядит следующим образом:Изменение моего backbone.js router
Есть 2 секции на экране (панель инструментов и основной контент ниже).
Существует несколько компонентов (управление адресами, управление событиями), каждый из которых инициируется изменением хеш-фрагмента и требует перехода страницы .
- Существует один backbone.js маршрутизатор. Это сердце приложения. Маршрутизатор активируется с новым хеш-фрагментом (вручную введен, кнопка возврата, выбор пункта меню).
До сих пор в маршрутизаторе я делал переход страницы, я ПРЯМО звался контроллером («вид» в магистрали) выбранного компонента.
Таким образом, существует CENTRAL обработка вызова контроллера.
Но это должно измениться сейчас до диспетчеризации. Теперь мне нужно ответить на новый хеш-фрагмент из двух разных мест: от компонента панели инструментов и от маршрутизатора.
Итак, моя идея заключается в обмене механизмом вызова прямого контроллера с pub sub. Теперь компоненты MULTIPLE могут зарегистрироваться для специального действия, и маршрутизатор просто «запускает событие».
Я искал вокруг и нашел Чаплин (https://github.com/moviepilot/chaplin), пример приложения backbone.js.
Разработчики Чаплина, кажется, имеют похожую вещь под названием «ApplicationView» (https://github.com/moviepilot/chaplin#toc-router-and-route):
«Между маршрутизатором и контроллерами, есть ApplicationView в диспетчесркого.»
Есть ли кто-нибудь, кто уже имеет такую архитектуру и может рассказать мне о своем опыте с этим или кто-нибудь решил это по-другому?