ActivatedRoute не возвращает активный компонент - PullRequest
0 голосов
/ 03 октября 2019

Я хотел бы получить внутри компонента компонент, связанный с активным текущим URL. Чтобы достичь этого, я использую ActivatedRoute следующим образом:

@Component({
  selector: 'ampm-home',
  templateUrl: './home.component.html'
})
export class HomeComponent {
constructor(
    private readonly router: Router,
    private readonly activatedRoute: ActivatedRoute,
    private readonly myService: MyService) {
    this.myService.eventTriggered.subscribe(() => {
      if (this.activatedRoute.snapshot.routeConfig.component.name === HomeComponent.name) {
        this.reloadComponentsData(null);
      }
    });
  }
}

Где MyService - это сервис с наблюдаемым вкоторый я хочу знать текущий активный URL, и перезагрузить данные, если и только если текущий URL является тем, который связан с текущим HomeComponent (то есть, если текущий URL является "http://myUrl/root/home",, который являетсяURL, связанный с HomeComponent ).

Однако, когда я, например, на "http://myUrl/root/anotherComponent" и MyService.observable , срабатывает, значение в activeRoute.snapshot в HomeComponent не связан с anotherComponent , но HomeComponent :

activated route

Вопрос :

Почему ActivateRoute дает мне значения компонента, в который он вводится, вместотекущий активный компонент?

Я был вынужден сделать следующий код, чтобыПолучите то, что мне нужно, чего я, очевидно, хочу избежать, потому что я связываю компонент с URL:

...