如何在Angular中获取由路由器加载的当前组件(父或子)?

时间:2019-11-03 13:09:49

标签: angular angular-router

假设我们有一条角线定义为:

const routes: Routes = [
    {
        path: '',
        component: HomeComponent
    },
    {
        path: '/user',
        component: UserComponent,
        children: [
            {
                path: 'edit-profile',
                component: EditProfileComponent
            }
        ]
    }
]

我想确定路由器加载的当前组件。

因此,如果用户访问/user/edit-profile,那么我想要EditProfileComponent作为字符串或对象;如果用户访问/,那么我想要HomeComponent

1 个答案:

答案 0 :(得分:1)

使用ActivatedRoute服务,该服务提供对有关与插座中加载的组件关联的路线的信息的访问。然后使用路由器事件,只要路由发生更改,就会触发该事件。

constructor(private router: Router, private route: ActivatedRoute) {}
this.router.events.subscribe(event => {
      if(event instanceof NavigationEnd){
      console.log(this.route.component.name);
      }
    })

Example