Возможно, вам потребуется создать службу, доступную для root, и добавить для нее тему, которая будет вызываться в каждом onDestroy для каждого компонента.
в службе:
//imports here
export class TestService {
pageChange$ = new Subject();
}
во всех компонентах, где вы хотите инициировать изменение:
//imports
export class TestComponent implements OnDestroy {
//component properties
constructor(private testSrv: TestService){}
ngOnDestroy(){
let notification = 'This page is getting closed';
testSrv.pageChange$.next(notification);
}
}
в компоненте, где вы хотите получить изменение:
//imports
export class HeaderComponent implements OnInit {
//component properties
constructor(private testSrv: TestService){}
ngOnInit(){
let notification = 'This page is getting closed';
testSrv.pageChange$.subscribe(notification => {
console.log(notification);
});
}
}
Это общее представление о том, что вы можете сделать чтобы решить вашу проблему.
Обновление
Если вы хотите просто отслеживать изменения URL, вам нужно использовать Router
:
constructor(private router: Router) {}
ngOnInit(){
this.router.events.subscribe((val) => {
if(this.router.navigated){
//do something here
}
});
}