无法将Router注入HttpInterceptor(Angular 7)

问题描述 投票:0回答:2

我想将Angular Router注入我的HttpInterceptor。不幸的是,浏览器控制台中抛出以下错误:

TypeError:this.router未定义

我像往常一样将它添加到我的构造函数中:

constructor (private router: Router) {

}

另外,我在app.module.ts中的providers数组中执行了以下操作:

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

我想在我的错误处理程序中的if语句中使用当前url来为不同的路由提供特定的功能:

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

我究竟做错了什么?

angular angular-router angular-httpclient angular-http-interceptors angular-httpclient-interceptors
2个回答
0
投票

你做过这个吗?太明显了?

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

0
投票

您可以尝试使用注射器。

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

您应该注意,无法导入包含httpClientModule的服务以避免循环依赖。

© www.soinside.com 2019 - 2024. All rights reserved.