Javascript Durandal空/空路由

Javascript Durandal空/空路由,javascript,durandal,durandal-2.0,durandal-navigation,Javascript,Durandal,Durandal 2.0,Durandal Navigation,我有一个主要/详细的情况。我想使用一个孩子路由器,这样我就可以(a)充分利用历史模块,(b)只在孩子身上触发入口转换。以下是我的设置: Shell.js 用户控制器 当我导航到#/users/5时,它工作得非常出色。但是,当我导航到#/users时,正如预期的那样,它会触发未找到的路由,取消导航,并将我返回到#/users/5。当找不到路由时,我应该如何配置它以禁用子视图?理想情况下,我想要这样的东西: 用户控制器 路由器将成功导航到“”路由,但null参数将指示它清空路由器绑定处理程序。这目前

我有一个主要/详细的情况。我想使用一个孩子路由器,这样我就可以(a)充分利用历史模块,(b)只在孩子身上触发入口转换。以下是我的设置:

Shell.js 用户控制器 当我导航到
#/users/5
时,它工作得非常出色。但是,当我导航到
#/users
时,正如预期的那样,它会触发未找到的路由,取消导航,并将我返回到
#/users/5
。当找不到路由时,我应该如何配置它以禁用子视图?理想情况下,我想要这样的东西:

用户控制器
路由器将成功导航到“”路由,但null参数将指示它清空路由器绑定处理程序。

这目前不是Durandal的功能。我在pull请求中添加了对此类内容的支持,您可以找到,以防您希望向应用程序添加对空路由的支持。

您可能需要在
canActivate
中检查
id
返回true如果有,返回{redirect:'emptyidroote'}否则。或者,更简单的方法是将第二个示例中的null替换为“EmptyIdulote”。问题是,我真的不希望一个空的视图/模型四处浮动。我正在寻找一条指令,告诉durandal路由器清空路由器容器。谢谢:)
// configure the shell router
router.map([{ 
    ...
},{ 
    route: 'users*edit', 
    title: 'User List', 
    moduleId: 'viewmodels/users' 
}]).activate();
this.router = router
    .createChildRouter()
    .makeRelative({ fromParent: true })
    .map({ route: ':id', moduleId: 'viewmodels/edit' })
this.router = router
    .createChildRouter()
    .makeRelative({ fromParent: true })
    .map([ 
        { route: ':id', moduleId: 'viewmodels/edit' },
        { route: '', moduleId: null }
])