Не удается ввести маршрутизатор в HttpInterceptor (Angular 7) - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу ввести угловой маршрутизатор в мой HttpInterceptor. К сожалению, в консоли браузера возникает следующая ошибка:

TypeError: this.router не определен

Я добавил это в свой конструктор как обычно:

constructor (private router: Router) {

}

Кроме того, я сделал следующее в своем массиве провайдеров внутри app.module.ts:

{
  provide: HTTP_INTERCEPTORS,
  useClass: MyService,
  multi: true,
  deps: [Router]
}

Я хочу использовать текущий URL внутри оператора if в моем обработчике ошибок, чтобы обеспечить определенные функции для разных маршрутов:

myErrorHandler(error: HttpErrorResponse) {
   if (this.router.url === 'test') {
     // do something
   } else {
     return throwError(error).pipe(
       // do something
     );
   }
}

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Вы можете попробовать использовать инжектор.

constructor(inj: Injector) {
this.router = inj.get(AuthService) }

Следует отметить, что невозможно импортировать службу, которая содержит httpClientModule, чтобы избежать циклической зависимости.

0 голосов
/ 30 апреля 2019

Ты это сделал?Слишком очевидно?

import { Router } from "@angular/router";
...