2

请帮助我有一条看起来像这样的 splat 路线。

管理员*详细信息

我从这样的管理链接创建了一个子路由器。

var childRouter = router.createChildRouter().makeRelative({ moduleId: 'admin', route:'admin'})
    .map([
           {
            title: 'Case Files',
            route: 'default/index',
            moduleId: 'default/index',
            nav: true
           }
         ])
    .buildNavigationModel();


    var vm = {
        router: childRouter,
        activate: activate
    };

我的文件夹结构是这样的。

viewmodels\admin\admin
viewmodels\admin\default\index

为什么它不导航到索引页面?
相反,我收到 Failed to load routed module 错误

4

2 回答 2

0

我认为您在这里有一个非常简单的错误。创建子路由器时,您需要提供默认路由以及您提供的路由。我说的不是很好,但在这里:

var childRouter = router.createChildRouter()
.makeRelative({ moduleId: 'admin', route:'admin'})
.map([
       {
        title: 'Case Files',
        route: ['', 'default/index'],
        moduleId: 'default/index',
        nav: true
       }
     ])
.buildNavigationModel();


var vm = {
    router: childRouter,
    activate: activate
};

你也可以这样做:

var childRouter = router.createChildRouter()
.makeRelative({ moduleId: 'admin', route:'admin'})
.map([
       {
        title:'Case Files',
        route: '',
        moduleId: 'default/index',
        nav: true
       },
       {
        title: 'Case Files',
        route: 'default/index',
        moduleId: 'default/index',
        nav: true
       }
     ])
.buildNavigationModel();


var vm = {
    router: childRouter,
    activate: activate
};

似乎因为您没有最初的默认子路由,因此尝试转到 /admin 没有定义的路由,它需要 /admin/default/index。希望有帮助。

于 2014-04-24T19:28:18.737 回答
0

每当我创建子路由器时,我总是使用fromParent : true. 此外,moduleId 取自父路由器的根目录,因此您可能会发现类似这样的东西有效

var childRouter = router.createChildRouter()
    .makeRelative({ moduleId: 'viewmodels/admin', fromParent: true})
    .map([{
        title: 'Case Files',
        route: 'default/index',
        moduleId: 'default/index',
        nav: true
       }])
    .buildNavigationModel();
于 2013-10-25T15:56:28.363 回答