在Durandal子路线中找不到路线错误

Chr*_*ris 6 requirejs knockout.js single-page-application durandal durandal-2.0

当我尝试使用子路由时,我得到"路由未找到".为了覆盖我的基础,这里是如何设计应用程序中的路由.

main.js文件包含顶部导航的路由,并且完成为 -

                    router.map([
                        { route: 'LOC', moduleId: 'LOC', title: 'LC', nav: 3 }
                    ]);
Run Code Online (Sandbox Code Playgroud)

我为页面的页脚绘制路线 -

        router.map('About', 'About', 'About', false);
    router.map('Help', 'Help', 'Help', false);
Run Code Online (Sandbox Code Playgroud)

当用户点击上面创建的"LOC"路线时,左侧导航将显示在该视图上.该视图使用子路由并设置为 -

var childRouter = router.createChildRouter()
    .makeRelative({
        moduleId: 'viewmodels/',
        fromParent: true
    }).map([
                        { route: '*LCClientSearch', moduleId: 'LCClientSearch', title: 'Create LC', type: 'intro', hash: '#LCClientSearch', nav: true },
                        { route: '*LCPending', moduleId: 'LCPending', title: 'Pending LC', type: 'intro', hash: '#LCPending', nav: true }

    ]).buildNavigationModel();
Run Code Online (Sandbox Code Playgroud)

LOC默认为LCClientSearch路线并最初正确显示,但是,从那一点开始没有任何正确的事情发生.当用户点击LCClientSearh或LCPending时,我收到"找不到路由"错误.

LOC视图 -

     <div class="span2 well">
    <ul class="nav nav-list">
        <li class="nav-header">Availability</li>

        <!--ko foreach: availability-->
        <li data-bind="css: { active: isActive }">
            <a data-bind="attr: { href: hash }, text: title"></a>
        </li>
        <!--/ko-->

        <li class="nav-header">Manual Post</li>


        <!--ko foreach: ManualPost-->
        <li data-bind="css: { active: isActive }">
            <a data-bind="attr: { href: hash }, text: title"></a>
        </li>
        <!--/ko-->
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

为什么我找不到路线?

ger*_*rod 6

我怀疑它是因为你的父路由没有splat - 请查看子路由器的文档.尝试将路线从父视图更改为:

router.map([
    { route: 'LOC*details', moduleId: 'LOC', title: 'LC', nav: 3 }
]);
Run Code Online (Sandbox Code Playgroud)

然后将子路由更改为:

[
    { route: 'LCClientSearch', moduleId: 'LCClientSearch', title: 'Create LC', type: 'intro', nav: true },
    { route: 'LCPending', moduleId: 'LCPending', title: 'Pending LC', type: 'intro', nav: true }
]
Run Code Online (Sandbox Code Playgroud)

这应该再搭配路线LOC/LCClientSearchLOC/LCPending分别.