Angular 7组件交互设计

时间:2019-08-09 09:21:53

标签: angular router

角度应用程序包含以下组件:

通过URL加载并具有FirstId的FirstComponent

ChildComponent,它是FirstComponent的子级。 ChildComponent通过路由器加载SecondComponent。

SecondComponent是通过路由器加载的,具有SecondId。

如果在SecondComponent中单击按钮,并且SecondComponent由FirstComponent内部的ChildComponent加载,则我需要插入带有FirstId和SecondId的记录。

要实现这一目标的设计是什么?

1 个答案:

答案 0 :(得分:1)

假设

  • URL:/path-1/:firstId/path-2/:secondId
  • 路由配置
{ 
  path: 'path-1/:firstId', 
  component: FirstComponent, 
  children: [
    { path: 'path-2/:secondId', component: SecondComponent }
  ]
}

您可以通过将:firstId注入:secondId中来访问ActivatedRouteSecondComponent

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' })