3

我有一个主要/详细的情况。我想使用一个子路由器,以便我可以(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 参数将指示它简单地清空路由器绑定处理程序。

4

1 回答 1

2

这目前不是 Durandal 的功能。我在拉取请求中添加了对此类事物的支持,您可以在此处找到,以防您想为您的应用添加对空路由的支持。

于 2013-12-31T19:39:30.940 回答