当前位置:  开发笔记 > 编程语言 > 正文

如何获取:来自Angular2中父组件的子路由的id参数

如何解决《如何获取:来自Angular2中父组件的子路由的id参数》经验,为你挑选了2个好方法。

我试图得到:id param定义

RouterModule.forRoot([
  {
    path: 'orders',
    component: ListComponent,
    children: [
      {
        path: 'view/:id',
        component: ViewComponent
      },
    ]
  }
])

来自ListComponent.

我已经尝试过:

route: ActivatedRoute

route.params.subscribe(params => {
  let id = +params['id'];
})

从ListComponent,但params数组是空的,我想它是因为:id param属于viewComponent而不是listComponent

如何在listComponent中获取id参数?



1> Günter Zöchb..:

您可以使用该firstChild属性或ActivatedRoute获取子路由:

route.firstChild.snapshot.params['id']


我使用route.snapshot.firstChild,而不是route.firstChild.snapshot还检查firstChild是否已经定义

2> Fernando Pop..:

为了在父组件中获取子进程,我使用了ActivatedRoute的firstChild属性,因为我只在子路由上

route: ActivatedRoute

route.firstChild.params.subscribe(params => {
  let id = +params['id'];
});


唯一正确的答案,因为事情永远不会在Angular中同步发生,这个答案也涵盖了订阅(异步)部分.
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有