为durandal子路由器创建bootstrap下拉导航

时间:2013-09-15 21:35:05

标签: twitter-bootstrap durandal

所以我用durandal创建了一个很好用的子路由器,我试图在下拉列表中将它的路由添加到我的主导航中。我正在使用bootstrap来说清楚。

我对使其工作的一般语法没有任何问题。问题是如何正确地让我的主导航访问子路线。

所以简要介绍一下细节:

应用/
---的ViewModels /
------配置/
--------- index.js
------ nav.js
---查看/
------配置/
---------的index.html
------ nav.html

(希望文件夹结构清晰)

导航视图模型具有对主路由器的引用,我正确绑定了navigationModel属性以获取根菜单项。我尝试在viewmodel中包含config / index.js,并创建属性childRouter,然后将下拉元素绑定到childrouter.navigationModel。这确实创建了正确的项目,但每条路由的哈希都是垃圾。它们只是变成x和y而不是config / x或config / y。

我不明白,因为子路由器仍然是从主路由器构建的,并且包括像这样的makerelative函数:

define(['services/router'],
    function (router) {
        var childRouter = router.createChildRouter()
            .makeRelative({
                moduleId: 'viewmodels/config',
                fromParent: true
            }).map([
                { route: 'x', moduleId: 'x', title: 'X', nav: true },
                { route: 'x/:accountId', moduleId: 'xItem', title: 'X', nav: false },
                { route: 'y', moduleId: 'y', title: 'Y', nav: true }
            ]).buildNavigationModel();

我认为它会从该相对点生成哈希值,但它似乎是从根目录开始的。

有什么想法吗?

0 个答案:

没有答案