Подмаршрутизация третьего уровня Durandal

Я пытаюсь сделать дочерний маршрутизатор из дочернего маршрутизатора в Durandal.js, но получаю случайные глупые ошибки (например, 404 и т. д.). Это проблема Дюрандаля (я имею в виду, если у него нет поддержки подмаршрутизации третьего уровня) или, может быть, проблема с моим кодом?

Спасибо


В любом случае, я собираюсь включить свой код здесь:

возвращение оболочки

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();
    }
};

возвращение дочернего элемента 2-го уровня

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
}

возвращение дочернего элемента 3-го уровня

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
}

person nikoloza    schedule 11.11.2013    source источник


Ответы (2)


Я считаю, что в настоящее время это ошибка в дочерних маршрутизаторах 3-го уровня или ниже. Мы отслеживаем это как проблему и работаем над решением. Я прошу прощения за неудобства.

person EisenbergEffect    schedule 11.11.2013
comment
:( Большое спасибо за ответ, можете дать ссылку на Github? Просто хочу подписаться, если будет исправление этой проблемы. - person nikoloza; 11.11.2013
comment
На самом деле у нас есть такая проблема в нашем приложении, но вместо 404 привязки представления очищаются при переходе обратно к дочернему элементу. Ждем исправления :) - person Marc-Andre R.; 12.11.2013

ха... Это довольно просто:

(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
}
person Luka Kancheli    schedule 11.11.2013