durandal 3级儿童路由器

时间:2015-02-02 11:38:19

标签: durandal durandal-navigation

一旦我宣布第三级路由器,我在二级路由器中定义的模块之间导航时遇到问题。 问题是:当我在第二级路由器的不同模块之间导航时,会触发激活,但不会为该模块触发附加。

路由器的代码段如下:

//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();

请告诉我哪里出错了。

1 个答案:

答案 0 :(得分:0)

查看canReuseForRoutehttp://durandaljs.com/documentation/Using-The-Router.html

的文档

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