角度应用程序包含以下组件:
通过URL加载并具有FirstId的FirstComponent
ChildComponent,它是FirstComponent的子级。 ChildComponent通过路由器加载SecondComponent。
SecondComponent是通过路由器加载的,具有SecondId。
如果在SecondComponent中单击按钮,并且SecondComponent由FirstComponent内部的ChildComponent加载,则我需要插入带有FirstId和SecondId的记录。
要实现这一目标的设计是什么?
答案 0 :(得分:1)
假设
/path-1/:firstId/path-2/:secondId
{
path: 'path-1/:firstId',
component: FirstComponent,
children: [
{ path: 'path-2/:secondId', component: SecondComponent }
]
}
您可以通过将:firstId
注入:secondId
中来访问ActivatedRoute
和SecondComponent
。
constructor(private activatedRoute: ActivatedRoute) {
this.activatedRoute.paramMap.subscribe(paramMap => {
const firstId = paramMap.get('firstId')
const secondId = paramMap.get('secondId');
})
}
要执行此操作,您需要在根RouterModule配置中设置paramsInheritanceStrategy
。
RouterModule.forRoot(routes, { paramsInheritanceStrategy: 'always' })