2013-10-13 71 views
2

請幫助我有一個啪的路線,看起來像這樣。與迪朗達爾子菜單

管理*細節

我創造這樣從管理鏈接子路由器。

var childRouter = router.createChildRouter().makeRelative({ moduleId: 'admin', route:'admin'}) 
    .map([ 
      { 
      title: 'Case Files', 
      route: 'default/index', 
      moduleId: 'default/index', 
      nav: true 
      } 
     ]) 
    .buildNavigationModel(); 


    var vm = { 
     router: childRouter, 
     activate: activate 
    }; 

我的文件夾結構就像這樣。

的ViewModels \ ADMIN \ ADMIN
的ViewModels \ ADMIN \ DEFAULT \指數

爲什麼不導航到的索引頁?
反而我得到一個失敗加載路由模塊錯誤

回答

0

每當我創建一個子路由器,我總是使用fromParent : true。另外,的moduleId是從父路由器的根採取的,所以你可能會發現,像這樣的作品

var childRouter = router.createChildRouter() 
    .makeRelative({ moduleId: 'viewmodels/admin', fromParent: true}) 
    .map([{ 
     title: 'Case Files', 
     route: 'default/index', 
     moduleId: 'default/index', 
     nav: true 
     }]) 
    .buildNavigationModel(); 
0

我覺得你在這裏有一個非常簡單的錯誤。在創建子路由器時,您需要爲您提供的路由提供默認路由。我不是說真的很好,但這裏:

var childRouter = router.createChildRouter() 
.makeRelative({ moduleId: 'admin', route:'admin'}) 
.map([ 
     { 
     title: 'Case Files', 
     route: ['', 'default/index'], 
     moduleId: 'default/index', 
     nav: true 
     } 
    ]) 
.buildNavigationModel(); 


var vm = { 
    router: childRouter, 
    activate: activate 
}; 

你也可以做這樣的:

var childRouter = router.createChildRouter() 
.makeRelative({ moduleId: 'admin', route:'admin'}) 
.map([ 
     { 
     title:'Case Files', 
     route: '', 
     moduleId: 'default/index', 
     nav: true 
     }, 
     { 
     title: 'Case Files', 
     route: 'default/index', 
     moduleId: 'default/index', 
     nav: true 
     } 
    ]) 
.buildNavigationModel(); 


var vm = { 
    router: childRouter, 
    activate: activate 
}; 

看來,因爲你沒有那個初始默認孩子的路線,試圖去/ admin沒有定義的路線,它期望/ admin/default/index。希望有所幫助。