Мне нужно подписаться на изменения URL-адреса в моем угловом приложении, мне нужно манипулировать компонентом заголовка на основе URL-адреса. Я уже пробовал ActivatedRoute.url, но он дает пустой URL-адрес, а также не запускает подписку при изменении URL-адреса.





Вы можете сделать это, внедрив Router в компонент. Я обычно делаю это в AppComponent, так что это происходит глобально для моего углового сайта для таких вещей, как отслеживание Google Analytics.
export class AppComponent implements OnInit {
constructor(private router: Router) {
router.events.subscribe(x => {
// only interested in the NavigationEnd type of event
if (!(x instanceof NavigationEnd)) {
return;
}
// Do stuff here
});
}
}
ActivatedRoute предоставляет только информацию о маршруте, который соответствует компоненту, в который внедряется ActivatedRoute.
В зависимости от того, что вы именно хотите, я предлагаю одно из следующих решений:
Subject между конечным компонентом и заголовком.Router и подписаться на router.eventsПример:
router.events.pipe(
filter(x => x instanceof NavigationEnd)
).subscribe(x => {
// Do whatever you want with x.url
});
Вы хотите захватить весь URL-адрес или параметры URL-адреса?