2013-08-22 25 views
1

我們試圖使用路線參數以及圖示路線。這是場景。組合參數,圖示路線和子路由器

我們有一個導航菜單,然後作爲其中一個選項的一部分,我們有一個嚮導。當我們去向導時,我們想要傳遞我們正在處理的對象的標識符。同樣,嚮導也有步驟,我們希望在子級別路由器上處理這些步驟,並將步驟作爲路由的一部分(*詳細信息)傳遞。

的圖示路線是這樣的:

{ route: 'offer/:offerId/*details', moduleId: 'offerbuilder/index', title: 'Offer Builder' } 

孩子們的路線是這樣的:

[ 
    { route: 'parameters', moduleId: 'parameters', title: 'Parameters', nav: true }, 
    { route: 'cart', moduleId: 'cart', title: 'Cart', nav: true }, 
    { route: 'workspaces', moduleId: 'workspaces', title: 'Workspaces', nav: true } 
] 

我們已經有了路由器和子路由器解決適當的途徑,但問題我們得到的是,子路由的哈希不會替換傳遞的參數值,而是使用原始模式。換句話說,這個做的工作:

http://oursite/main/#offer/123456789/parameters 

但作爲嚮導步驟部分所產生的哈希值是:

http://oursite/main/#offer/:offerId/parameters 

我的問題是,做圖示線路支持的參數納入?如果不是,建議的解決方法是什麼?

回答

4

這是目前與子路由器,這是discussed here問題。

解決方法是拉取parentId並手動爲子路由器構造散列。

var childRouter = router.createChildRouter() 
    .makeRelative({ 
     moduleId: 'employees/doctors', 
     route: 'doctors/:id', 
    }); 

return { 
    router: childRouter, 
    activate: function() { 
     var doctorID = router.activeInstruction().params; 

     childRouter.map([ 
     { route: '', moduleId: 'patients/index', hash: '#employees/doctors' + doctorID(), nav: true }, 
     { route: 'schedule', moduleId: 'schedule/index', hash: '#employees/doctors/' + doctorID() + '/schedule', nav: true } 
     ]).buildNavigationModel(); 
    } 
};