一旦我宣布第三级路由器,我在二级路由器中定义的模块之间导航时遇到问题。 问题是:当我在第二级路由器的不同模块之间导航时,会触发激活,但不会为该模块触发附加。
路由器的代码段如下:
//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();
请告诉我哪里出错了。
答案 0 :(得分:0)
查看canReuseForRoute
:http://durandaljs.com/documentation/Using-The-Router.html
如果您定义canReuseForRoute
函数并返回false
,我相信您会发现第二级路由器视图模型完全按照您的意图重新创建。