Я хотел бы получить внутри компонента компонент, связанный с активным текущим 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](https://i.stack.imgur.com/DQRIu.png)
Вопрос :
Почему ActivateRoute дает мне значения компонента, в который он вводится, вместотекущий активный компонент?
Я был вынужден сделать следующий код, чтобыПолучите то, что мне нужно, чего я, очевидно, хочу избежать, потому что я связываю компонент с URL: