1

所以我用 durandal 创建了一个运行良好的子路由器,我正在尝试在下拉菜单中将它的路由添加到我的主导航中。我使用引导程序只是为了说明这一点。

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

因此,简要分解细节:

App/
---ViewModels/
------Config/
---------index.js
------nav.js
---Views/
------Config/
- --------index.html
------nav.html

(希望文件夹结构清晰)

导航视图模型引用了主路由器,我正确绑定了 navigationModel 属性以获取根菜单项。我尝试在视图模型中包含 config/index.js,并创建一个属性 childRouter,然后将下拉元素绑定到 childrouter.navigationModel。这确实创建了正确的项目,但每个路由的哈希都是垃圾。它们不再是 config/x 或 config/y,而是变成了 x 和 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();

我假设它会从那个相对点生成散列,但它似乎是从根开始的。

有任何想法吗?

4

0 回答 0