0

一旦我声明了 3 级路由器,我就面临在 2 级路由器中定义的模块之间导航的问题。问题是:当我在 2 级路由器的不同模块之间导航时,激活被触发,但未为模块触发附加。

路由器的代码片段如下:

//1st level router
landing.router = router.map([
{ route: 'resourcebrowser*splat', title: 'Resource', moduleId: 'viewmodels/resourcebrowser', nav: true },
]).buildNavigationModel();

//2nd level router
var childRouter = parentView.router = landing.router.createChildRouter()
.makeRelative({
moduleId: 'viewmodels/tab/',
fromParent: true
}).map([
{ route: ':id/details', moduleId: 'details', title: 'Details', type: 'intro', nav: true },
{ route: ':id/docs*splat', moduleId: 'documents', title: 'Documents', type: 'intro', nav: true }
]).buildNavigationModel();

//3rd level router

var childRouter = parentView.router.createChildRouter()
.makeRelative({
moduleId: 'viewmodels/viewer/',
route: ':id/docs/'
})
.map([
{ route: 'documentviewer/:docid', moduleId: 'documentviewer', title: 'Viewer', type: 'intro', nav: true }
]).buildNavigationModel();

请让我知道我哪里出错了。

4

1 回答 1

0

检查文档canReuseForRoutehttp ://durandaljs.com/documentation/Using-The-Router.html

如果您定义canReuseForRoute函数并返回false,我相信您会发现第二级路由器视图模型完全按照您的意图重新创建。

于 2015-02-04T21:40:31.473 回答