2016-07-25 84 views
2

我正在使用新的route3,並且想知道什麼是URL語法以指定子路由的輔助組件。如何在angular2 router3中爲子路由指定輔助組件

我有以下的孩子路由定義:

const router: RouterConfig = [ 
    { 
    path: 'component-c', component: ComponentC, children: [ 
     { path: 'auxPath', component: ComponentAux, outlet: 'aux'}, 
     { path: 'c1', component: ComponentC1 } 
    ] 
    } 
]; 

而對於ComponentC模板就像

@Component({ 
    selector: 'component-c', 
    template: ` 
    <div>Child Route Component</div> 
    <router-outlet></router-outlet> 
    <router-outlet name="aux"></router-outlet> 
    `, 
    directives: [ROUTER_DIRECTIVES] 
}) 

URL /組件-C/C1顯示ComponentC1;然而,我已經嘗試過像/組件-C的許多組合(AUX:auxPath)/ C1/組件-C/C1(AUX:auxPath)等,並且仍然不能找出如何讓ComponentAux得到顯示...

回答

3

你應該嘗試形成像下面的URL。

this.router.navigateByUrl('/component-c/(c1//aux:auxPath) 

按我上次調查當前路由器版本在導航使用routerLinknavigate方法AUX插座的一些問題。您應該構建完整的URL並使用navigateByUrl

Plunker與example。點擊詳細按鈕,然後點擊管理。管理員在管理員中路由。全屏打開以查看URL形成。

的URL具有以下語義

  1. 兒童路徑由/
  2. 如果路徑的兄弟姐妹,那麼它應該與括號包圍分離()
  3. 同級由//
  4. 分離

    插座和路徑被分隔:

    Parent/child/(gchild1//outletname:gchild2)

另外so question

+0

它的工作原理!也謝謝你的提示,我遇到與routerLink和導航方法相同的問題。 –

+0

@Arpit你可以將這個問題標記爲重複的答案,我看到鏈接的答案几乎相同:) –

+0

事實上,兩者都是我對答案的要求。我可以從下次看到。 –

相關問題