我有一个主要/详细的情况。我想使用一个子路由器,以便我可以(a)充分利用历史模块并(b)仅触发孩子的入口转换。这是我的设置:
Shell.js
// configure the shell router
router.map([{
...
},{
route: 'users*edit',
title: 'User List',
moduleId: 'viewmodels/users'
}]).activate();
用户.js
this.router = router
.createChildRouter()
.makeRelative({ fromParent: true })
.map({ route: ':id', moduleId: 'viewmodels/edit' })
当我导航到#/users/5
它时,它工作得很好。但是,当我#/users
按预期导航到 时,它会触发一条未找到的路线,取消导航,然后将我返回到#/users/5
。当找不到路由时,我应该如何配置它以禁用子视图?理想情况下,我想要这样的东西:
用户.js
this.router = router
.createChildRouter()
.makeRelative({ fromParent: true })
.map([
{ route: ':id', moduleId: 'viewmodels/edit' },
{ route: '', moduleId: null }
])
路由器将成功导航到 '' 路由,但 null 参数将指示它简单地清空路由器绑定处理程序。