2015-05-28 4 views
1

У меня есть settings знак маршрут сконфигурирован в shell.js:Splat маршрут не найден (DurandalJS)

router.map([ 
    { route: 'settings*child', moduleId: 'views/settings/main', nav: true } 
]).buildNavigationModel(); 

И внутри файла views/settings/main.js я создал дочерний маршрутизатор:

var childRouter = router.createChildRouter().makeRelative({ 
    moduleId: 'views/settings', 
    fromParent: true 
}).map([ 
    { route: 'users',  moduleId: 'child/users/list', nav: true }, 
    { route: 'users/:id', moduleId: 'child/users/view', nav: false }, 
]).buildNavigationModel(); 

структура папок выглядит так:

/views 
-/settings 
--settings.js  
--settings.html 
--/child 
---/users 
----list.js 
----list.html 
----view.js 
----view.html 

Проблема я столкнулся это:

Когда я пытаюсь перейти на страницу настроек (#settings) с другой страницы маршрута родительском он покажет мне сообщение об ошибке в консоли:

Route Not Found settings undefined

Но настройки страница все еще отображается со всем списком дочернего маршрутизатора, который я создал.

Далее, я пытаюсь перейти к #settings/users и #settings/users/{id}, и он работает без проблем или ошибок, хотя попробуйте использовать его с другой родительской страницы.

Я думаю, что проблема знак маршрут всегда ожидал чего-то будет впереди хэша что-то вроде #settings/users и НЕ Примет #settings без ребенка?

Или я пропустил что-то на моей реализации?

Любая помощь или предложения были бы оценены!
Спасибо!

ответ

0

У меня есть очень похожие настройки, создать маршрут на ребенка маршрутизатор представлять пустой маршрут, как это:

var childRouter = router.createChildRouter().makeRelative({ 
moduleId: 'views/settings', 
fromParent: true 
}).map([ 
    { route: '', moduleId: 'main', nav: true }, 
    { route: 'users',  moduleId: 'child/users/list', nav: true }, 
    { route: 'users/:id', moduleId: 'child/users/view', nav: false }, 
]).buildNavigationModel(); 
+0

Привет @patel, К сожалению, у меня нет возможности проверить свои предложения еще Теперь. Но я считаю, что это ответ. Я пропустил создание пустого маршрута {route: '', moduleId: 'main', nav: true}, Спасибо! –

+0

без проблем приятель, рад, что я мог бы помочь :) –

Смежные вопросы