Можно ли закрыть или остановить магистральный маршрутизатор от прослушивания определенных им маршрутов?
Я спрашиваю, потому что тестировал Backbone SubRoute (https://github.com/ModelN/backbone.subroute), создание приложения с большим количеством областей, в которых у пользователя может быть запущено множество подприложений.
Таким образом, я определил структуру основного маршрутизатора и подмаршрутизатора, которая примерно следующая:
MainRouter = Backbone.Router.extend
routes:
"":"root"
"spaces/:id/:module(/*subroute)":"invokeModule"
root: () ->
console.log "root trigger"
invokeModule: (id, module, subroute) ->
that = this
GigaApp.module(module).start({nested_root: "spaces/#{id}/#{module}"})
SubAppRouter = Backbone.SubRoute.extend
routes:
"":"app_home"
app_home: () ->
console.log 'at sub app home'
SubApp.on "start", (options) ->
SubApp.router = new SubAppRouter(options.nested_root)
Эта общая структура работает с первой инициализации подприложения для пространства, поскольку MainRouter запускает SubApp, который инициализирует свой маршрутизатор с правильным вложенным маршрутом. Впоследствии другие маршруты, определенные в SubAppRouter, также вызывают штраф.
Однако, если вы перейдете к другому пространству (с другим идентификатором) и вернетесь к первому пространству, эта структура сломается, потому что SubAppRouter, уже инициализированный для этого пространства, переопределяет MainRouter, и вызов запуска SubApp не выполняется из MainRouter. .
Итак, мне интересно, есть ли способ остановить или отключить отвязку запуска маршрута магистрального маршрутизатора.