Angular ActivatedRoute订阅不会在路由更改时触发

时间:2020-09-14 17:25:12

标签: angular angular-router

这是我面临的问题的StackBlitz:

https://stackblitz.com/edit/angular-ivy-aetvyf?file=src%2Fapp%2F

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

是否不会在每次更改路由时发出ActivatedRoute.url订阅?

我知道我可以使用Router.events,但是您必须按事件类型进行过滤,并且Router事件没有路由段,例如ActivatedRoute.snapshot那样。

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

1 个答案:

答案 0 :(得分:0)

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

喜欢这个:-

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