2017-04-04 44 views
1

這AdminRouting如何在使用多個孩子時使用routerLink?

path: 'adminHome', 
    component: adminHomeComponent, 
    children: [ 
     { 
      path: '', 
      component: HomeComponent, 

     }, 
     { 
      path: 'home', 
      component: HomeComponent, 

     }, 

     { 
      path: 'users', 
      component: UserListComponent, 
      children: [ 
       { 
        path: '', 
        component: HUComponent 
       }, 
       { 
        path: ':id', 
        component: EntrepriseListComponent, 
        children: [ 

         { 
          path: '', 
          component: HyComponent 

         }, 
{ 
          path: ':id', 
          component: ListLaucauxComponent 
         }, 


        ] 
       } 

      ] 

     }, 
    ] 
    }, 

我想名單LocauxComponent通過點擊企業的ID,以獲取此URL本地主機:3000/adminHome /用戶/ {{id_user}}/{{id_entreprise}} 我嘗試用
[routerLink]="['/adminHome/users/:id',x.id]" ,但我得到的另一個URL類似 http://localhost:3000/adminHome/users/%3Aid/58e35bdeaf314301ec86c249

+0

這個URL有什麼問題? –

+0

我在後端服務器上得到一個nullPointerException異常 –

+0

您可以通過在瀏覽器上手動輸入來檢查您是否通過正確的URL獲取數據嗎? –

回答

0

您的鏈接是錯誤的。當使用[routerLink]時,您不需要指定:id與您不需要使用路徑變量執行相同的操作,而是將其定義爲佔位符來放置標識。

[routerLink]看起來應該像下面這樣:

[routerLink]="['/adminHome/users', x.id]" 

編輯

爲了打造[routerLink]更PARAMATERS請執行以下操作:

[routerLink]="['/adminHome/users', param1, param2...]" 

,這將導致在:/adminHome/users/1/2如果param1=1param2=2

+0

but [routerLink] =「['/ adminHome/users',x .id]「將會調用EntrepriseListComponent,就像你在routing.ts中看到的一樣。它像我想要的那樣工作的問題,並且在服務器上存在空指針異常,這是因爲URL上的ID爲%3Aid的ID更改。當我手動更改%3Aid通過正確的id沒有空指針異常,我找不到解決方案如何保持這樣的localhost:3000/adminHome/users/{{id_user}}/{{id_entreprise}} –

+0

所以它應該是'[routerLink] =「['/ adminHome/users',x.id,param2]」'建立鏈接時不能放置'/:id',因爲它只會以純文本的形式發送(' 3A'是URL編碼版本的':')。 routerLink會自動爲你建立URL,如果你做得對的話,這意味着將基URL作爲第一個參數作爲一個字符串繼續每個參數,如下所示:'[routerLink] =「['/ adminHome/users' ,param1,param2,param3 ....]「' – Tom

+0

它將[routerLink] =」['/ adminHome/users',param2,x.id]「。以及我應該在params2中放置什麼以便用{{id_user}}替換parms2,以及如何恢復{{id_user}}並將其替換爲[routerLink]。我嘗試在ngOnInit()中抓住這個ID並將其替換爲「['/ adminHome/users',{{id}},x」。如果參數的名稱是'id',那麼當你在[routerLink]中注入參數時,你不需要'{{}}'「,但是這個語法不允許使用 –