2017-09-29 262 views
2

在我的應用程序想擁有我的孩子航線缺省路由,如果給experiments/1路由器將路由experiments/1(browsePanel:overview)角:路由到一個輔助的路線與路線孩子

我已經目前一直在使用這個site作爲我的參考,它幾乎等同於什麼,我想實現一個例子,這裏是他們的代碼:

{ 
    path: 'team/:id', 
    children: [ 
     { path: '', pathMatch: 'full', redirectTo: 'list' }, 
     { path: 'list', component: TeamListComponent, 
     children: [ 
     { path: '', pathMatch: 'full', redirectTo: 'default' }, 
     { path: 'default', component: DefaultComponent } 
     ] 
     }, 
     { path: '', pathMatch: 'full', redirectTo: 'details' outlet: 'aux' } 
    ] 
    } 

他們的代碼比什麼,我試圖做更復雜的,但由於某種原因,我得到這個錯誤: "Invalid configuration of route 'experiments/:id/': a componentless route cannot have a named outlet set"

這裏是我的代碼:

{ path: "experiments/:id", component: BrowseExperimentsComponent , children:[ 
     {path: '', redirectTo: 'overview', pathMatch: 'full', outlet:'browsePanel'}, 
     {path:'overview',component: BrowseOverviewComponent, outlet: 'browsePanel', resolve:{project:ProjectResolverService}}, 
     {path:':id', component: ExperimentDetail, outlet: 'browsePanel',resolve: {experiment: ExperimentResolverService}}] 
}, 

假設他們的代碼是功能和良好的做法,我不明白爲什麼我得到這個錯誤在componentless路線有插座。我確實刪除了「outlet:'browsePanel'」,並使錯誤消失,但在提供「experimental/1」時不會路由到孩子。

如果我不能將插座放入重定向路徑,我如何路由到輔助路線?謝謝

+0

有點太晚了,但我有同樣的問題,並找不到解決方案。你找到了方法嗎? –

+0

可悲的是,仍然不確定如何獲得重定向到出口。 –

+0

我發現了很多問題,但沒有一個解決方案似乎適用於我,而我正在使用最新的角度版本。目前嘗試使用Guard來手動重定向到在激活的路由中找到的第一個子路由。 –

回答

2

我有同樣的問題。我得到它的工作通過改變redirectTo財產給孩子航線的絕對路徑,像這樣(角5.2.5):

{ 
    path: "experiments/:id", 
    component: BrowseExperimentsComponent, 
    children: [ 
     {path: '', pathMatch: 'full', redirectTo: '/experiments/:id/(browsePanel:overview)'}, 
     {path: 'overview', component: BrowseOverviewComponent, outlet: 'browsePanel', resolve:{project:ProjectResolverService}}, 
     {path:':id', component: ExperimentDetail, outlet: 'browsePanel', resolve: {experiment: ExperimentResolverService}} 
    ] 
}, 

我希望這可以幫助您:)