我有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为后面的方法 –