获取子路由的路由参数

时间:2020-06-29 06:58:08

标签: angular

编辑:实际上,如果我在子级DancersAddComponent中执行此查询,则可以,但是如果我在父级路由DancersComponent中进行查询,则不会

使用angular 9,我有一个主模块路由,它将根据应用程序状态返回正确的模块以进行加载=>

const splitter = () =>
  import('@app/app-routing-handler.module').then((module) => module.AppRoutingHandlerModule)

const routes: Routes = [
  {
    path: '',
    loadChildren: splitter,
  },
]

然后在“我的应用程序”中有许多模块,每个模块都用自己的路由延迟加载模块。

当我输入不同的URL时,一切正常,显示正确的组件。

在我的子路由模块之一中,我具有以下路由

const routes: Routes = [
  {
    path: '',
    component: DancersComponent,
    children: [
      {
        path: 'dancers/:id/add,
        component: DancersAddComponent,
      },
    ],
  },
]

我尝试使用以下方法在DancersComponent中获取路线参数id

  constructor(private route: ActivatedRoute) {}

  ngOnInit(): void {
    this.route.paramMap.subscribe((params: ParamMap) => {
      console.log(params)
    })
  }

但这些参数始终为空。

我相信是因为它是嵌套在另一个模块中的路由,也嵌套在另一个路由中。

有没有办法获取那些子路由的参数?

1 个答案:

答案 0 :(得分:0)

发现,使用

this.route.firstChild.paramMap.subscribe((params: ParamMap) => {
  console.log(params)
})