Durandal null / empty route

时间:2013-12-31 03:07:26

标签: javascript durandal durandal-2.0 durandal-navigation

我有一个主人/细节情况。我想雇用一个儿童路由器,这样我就可以(a)充分利用历史模块,(b)只触发孩子的入口过渡。这是我的设置:

Shell.js

// configure the shell router
router.map([{ 
    ...
},{ 
    route: 'users*edit', 
    title: 'User List', 
    moduleId: 'viewmodels/users' 
}]).activate();

Users.js

this.router = router
    .createChildRouter()
    .makeRelative({ fromParent: true })
    .map({ route: ':id', moduleId: 'viewmodels/edit' })

当我导航到#/users/5时,它的工作非常出色。但是,当我按预期导航到#/users时,会触发未找到的路线,取消导航,然后将我返回#/users/5。如何在未找到路径时将其配置为禁用子视图?理想情况下,我想要这样的事情:

Users.js

this.router = router
    .createChildRouter()
    .makeRelative({ fromParent: true })
    .map([ 
        { route: ':id', moduleId: 'viewmodels/edit' },
        { route: '', moduleId: null }
])

路由器将成功导航到''路由,但null参数将指示它只是清空路由器绑定处理程序。

1 个答案:

答案 0 :(得分:2)

目前这不是杜兰达的特色。我已经在pull请求中添加了对此类事物的支持,您可以找到here,以防您想要为您的应用添加对空路由的支持。