2015-02-02 2 views
0

Как только я объявляю маршрутизатор третьего уровня, я сталкиваюсь с проблемой в навигации между модулями, определенными на маршрутизаторе второго уровня. Проблема заключается в том, что когда я перемещаюсь между различными модулями на маршрутизаторе второго уровня, активируется, но при этом модуль не запускается.durandal дочерний маршрутизатор третьего уровня

Фрагмент кода для маршрутизаторов выглядит следующим образом:

//1st level router 
landing.router = router.map([ 
{ route: 'resourcebrowser*splat', title: 'Resource', moduleId: 'viewmodels/resourcebrowser', nav: true }, 
]).buildNavigationModel(); 

//2nd level router 
var childRouter = parentView.router = landing.router.createChildRouter() 
.makeRelative({ 
moduleId: 'viewmodels/tab/', 
fromParent: true 
}).map([ 
{ route: ':id/details', moduleId: 'details', title: 'Details', type: 'intro', nav: true }, 
{ route: ':id/docs*splat', moduleId: 'documents', title: 'Documents', type: 'intro', nav: true } 
]).buildNavigationModel(); 

//3rd level router 

var childRouter = parentView.router.createChildRouter() 
.makeRelative({ 
moduleId: 'viewmodels/viewer/', 
route: ':id/docs/' 
}) 
.map([ 
{ route: 'documentviewer/:docid', moduleId: 'documentviewer', title: 'Viewer', type: 'intro', nav: true } 
]).buildNavigationModel(); 

Пожалуйста, дайте мне знать, где я буду неправильно.

ответ

0

Проверьте документацию для canReuseForRoute: http://durandaljs.com/documentation/Using-The-Router.html

Если определить функцию canReuseForRoute и вернуть false, я полагаю, вы увидите, что второй маршрутизатор уровня ViewModel воссоздан полностью, как вы намерены.

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