Durandal第三级子程序

时间:2013-11-11 19:10:54

标签: durandal durandal-2.0 durandal-navigation

我正在尝试在 Durandal.js 中创建子路由器的子路由器,但是会出现随机的哑误差(例如404等)。是Durandal的问题(我的意思是,如果它没有第三级子路由支持)或者它可能是我的代码问题?

由于


无论如何,我将在这里包含我的代码:

返回 shell

return {
    router: router,
    activate: function () {
        return router.map([

            {
                route: ['', 'Main'],
                moduleId: 'Main/index',
                nav: false
            },

            {
                route: 'Main*details',
                moduleId: 'Main/index',
                hash: '#/Main/',
                title: 'Main',
                nav: false
            }

        ]).buildNavigationModel()
          .activate();
    }
};

返回二级孩子

var mainRouter = router.createChildRouter()
    .makeRelative({
        moduleId: 'Main',
        fromParent: true
    }).map([

        {
            route: ['', 'Dashboard'],
            moduleId: 'Dashboard/index',
            nav: false
        },

        {
            route: 'Dashboard*details',
            moduleId: 'Dashboard/index',
            hash: '#/Main/Dashboard',
            title: 'Dashboard',
            nav: true
        }

    ]).buildNavigationModel();

return {
    router: mainRouter
}

返回三级孩子

var dashboardRouter = router.createChildRouter()
    .makeRelative({
        moduleId:'Dashboard',
        fromParent: true
    }).map([

        {
            route: ['', 'Product'],
            moduleId: 'Product/index',
            hash: '#/Main/Dashboard/Product',
            title: 'Product',
            nav: true
        }

    ]).buildNavigationModel();

return {
    router: dashboardRouter
}

2 个答案:

答案 0 :(得分:2)

我认为这是目前处于第3级或更低级别的子路由器的错误。我们将此跟踪视为一个问题,并正在制定解决方案。对于给您带来的不便,我深表歉意。

答案 1 :(得分:-1)

哈......这很简单:

(var dashboardRouter = router.createChildRouter()
.makeRelative({
    moduleId:'Dashboard',
    fromParent: true
}).map([

    {
        route: ['', 'Product'],
        moduleId: 'Product/index',
        hash: '#/Main/Dashboard/Product',
        title: 'Product',
        nav: true
    }

]).buildNavigationModel();

return {
    router: dashboardRouter
}).makeRelative({
    moduleId: 'Main',
    fromParent: true
}).map([

    {
        route: ['', 'Dashboard'],
        moduleId: 'Dashboard/index',
        nav: false
    },

    {
        route: 'Dashboard*details',
        moduleId: 'Dashboard/index',
        hash: '#/Main/Dashboard',
        title: 'დეშბორდი',
        tab: "dashboard",
        nav: true
    }

]).buildNavigationModel();

return {
    router: mainRouter
}