首页 > 解决方案 > 父组件中的 Angular ActivatedRoute 参数订阅仅触发一次

问题描述

我有一个容器组件AdminComponent,它有不同的孩子:

{
    path: ":company/admin",
    component: AdminComponent,
    children: [
      { path: "", component: LoginComponent },
      { path: "account", component: AccountComponent, canActivate: [RedirectGuard] },
      { path: "detail", component: AdminlayoutsComponent, canActivate: [RedirectGuard] }
    ]
}

但是我的路线订阅只触发一次,而不是在路线更改时触发:

export class AdminComponent {

  constructor(  private activatedRoute: ActivatedRoute ) {
    this.activatedRoute.params.subscribe((params: Params) => {
      console.log("####params", params);
  });
}
}

如何在父组件中的每次路由更改时触发路由更改事件?

标签: angularangular-routing

解决方案


事件不会被触发,因为:path: ":company/admin",只有路径的第一部分是参数。正确的事件监听器是:

  router.events.subscribe((val) => { 
// do stuff
)};

推荐阅读