是否可以关闭或阻止骨干路由器监听其定义的路由?
我问是因为我一直在测试 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 中定义的其他路由也触发正常。
但是,如果您导航到不同的空间(具有不同的 id)并导航回第一个空间,则此结构会中断,因为已经为该空间初始化的 SubAppRouter 会覆盖 MainRouter,并且没有调用从 MainRouter 启动 SubApp .
所以,我想知道是否有办法停止或禁用取消绑定主干路由器的路由触发。