我有2個關於角2點路由器的路徑問題,我花了一些時間google搜索一下,但沒有運氣,反正我有以下的路線設置:角2路由器路徑
{ path: 'contract', component: ContractInsertUpdateComponent, children: [
{ path: '' },
{ path: ':id', component: ContractInsertUpdateComponent, children:[
{ path: 'buyers', component : ContractTabBuyerComponent },
{ path: 'seller', component : ContractTabSellerComponent }
]}
]}
首先,讓我解釋一下我想在這裏實現的目標,我希望使用相同的組件來插入/更新合同。我也有更多的孩子路線和完整的URL看起來應該像
localhost:4200/contract/2/buyers
我很好奇的第一件事情就是合同的默認路由
{路徑:「」}
如果我理解的話,如果路線是類似的
localhost:4200/contract
它應該加載ContractInsertUpdateComponent,它的atm,我的問題是:這是否正確的方式來做到這一點?如果可能的話,我也想避免使用空的組件作爲默認路由。
-
此路徑設定目前不工作的
- 休息,例如,如果i型像
localhost:4200/contract/2
即時得到錯誤:無法匹配任何路由。 URL段:'contract/2'
在我的理解中,它應該加載ContractInsertUpdateComonent我錯了嗎?
我不知道在哪裏尋找幫助,我需要一個人指點我正確的方向......感謝您的幫助!
好了,謝謝,使用你的邏輯,我設法使它工作(種) - 我在兩條兒童路線上都加了'{path:'',pathMatch:'full'}',所以現在看起來像這樣: {{path:'contract',component:ContractInsertUpdateComponent,children:[ {path:'',pathMatch:'full'}, {path:':id',children:{path:'',pathMatch :'full'}, {path:'seller',component:ContractTabSellerComponent} ]} ]} 現在我有一個問題,因爲我的ContractInsertUpdateComponent param(id)值是NaN。任何想法? – Exerlol
'id'只傳遞給'ContractTabSellerComponent'。您可以在那裏使用它或將其傳遞給父項。還有一種方法可以從父級參數中找到子路由,但似乎有點脆弱。 –
另請參閱http://stackoverflow.com/questions/38956129/angular-2-new-router-how-to-get-router-parameters-of-a-child-component爲後面的方法 –