Angular 角度ActivateRoute订阅未在路由更改时触发

Angular 角度ActivateRoute订阅未在路由更改时触发,angular,angular-router,Angular,Angular Router,以下是我所面临的问题: 在AppComponent中,我订阅了ActivatedRoute.url更改,但它们只触发一次 ActivateRoute.url订阅不应该在每次路由更改时发出吗 我知道我可以使用Router.events,但在这里,您必须按事件类型进行筛选,并且路由器事件没有路由段,例如ActivatedRoute.snapshot 我已经阅读了所有相关问题,但没有人真正回答这个问题。我看到了您的代码。您必须订阅子组件,即a和b,以检测url更改。当前您正在app.componen

以下是我所面临的问题:

在AppComponent中,我订阅了ActivatedRoute.url更改,但它们只触发一次

ActivateRoute.url订阅不应该在每次路由更改时发出吗

我知道我可以使用Router.events,但在这里,您必须按事件类型进行筛选,并且路由器事件没有路由段,例如ActivatedRoute.snapshot


我已经阅读了所有相关问题,但没有人真正回答这个问题。

我看到了您的代码。您必须订阅子组件,即a和b,以检测url更改。当前您正在app.component上添加这些订阅。此外,如果您想要一个应用程序级解决方案,您必须订阅Router.events

像这样:-

constructor(private ar: ActivatedRoute, private r: Router) {
  this.r.events.subscribe((segs) => {
    console.log('Route segments');
    console.log(segs);
  });
}

这回答了你的问题吗?您应该在导航组件上而不是根组件上侦听是否已激活。您可以在此处阅读有关RouterEvent的更多信息: