Проверьте угловой маршрут маршрута от перехватчика
У меня есть маршрут, настроенный как:
{
path: 'user/:id/edit/:type',
component: UserEditTypeComponent,
},
Я хочу получить путь от перехватчика, к которому я мог бы получить доступ из активированных маршрутов как:
constructor(private activatedRoute: ActivatedRoute) {
}
ngOnInit() {
console.log(this.activatedRoute.routeConfig.path);
}
Это приводит к возвращению этого пути user/:id/edit/:type
в консоли.
Я хочу получить тот же путь от перехватчика, который я пробовал как:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let ar = this.injector.get(ActivatedRoute);
console.log(ar.routeConfig.path);
}
это возвращает ошибку как: Cannot read property 'path' of null
, Я удалил путь и проверил и нашел routeConfig
быть нулевым.
Как мы получаем активированный маршрут внутри перехватчика?
Есть ли другой способ доступа к path
в перехватчике?
Если вопрос кажется неясным, может обновить его с дополнительной информацией.
0 ответов
Я знаю, что это немного поздно.. но следующее решит вашу проблему, были аналогичные проблемы..
constructor(private activatedRoute: ActivatedRoute) {
console.log(activatedRoute.snapshot['_routerState'].url);
}
activRoute.snapshot['_routerState'].url будет содержать ваш '/user/:id/edit/:type'.
Приветствия (у)
Я заставил его работать вот так, заглянув в реализацию
constructor(private router: Router) {
console.log(this.router.routerState.snapshot.url);
}
Это даст вам весь URL-адрес с параметрами и всем остальным. Подобно:user/234?hasName=true&hasShoes=false
Если в перехватчике активированный маршрут и снимок не загружены с текущим путем или URL, в качестве последнего варианта, вы можете использовать классический window.location
Лучший способ сделать это - сделать это через объект маршрутизатора:
constructor(private router: Router) {
console.log(this.router.routerState.snapshot);
}
Таким образом, вам не нужно получать доступ к скрытым свойствам.