angular - 将http客户端注入(inject)HTTP拦截器Angular 4

标签 angular angular-http-interceptors

如何将http客户端注入(inject)HTTP拦截器?每当我这样做时,它都会抛出:未捕获错误:提供程序解析错误: 无法实例化循环依赖! InjectionToken_HTTP_INTERCEPTORS ("[ERROR ->]"): 在 ./AppModule@-1:-1 中的 NgModule AppModule

我的拦截器看起来像:

@Injectable()
export class CustomHttpInterceptor implements HttpInterceptor {

  constructor(private ehs: ErrorHandlerService,
              private localStorageService: LocalStorageService,
              private router: Router,
              private http: HttpClient
             ){}

最佳答案

你可以使用注入(inject)器

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

看这个例子: https://plnkr.co/edit/8CpyAUSJcCiRqdZmuvt9?p=preview

https://angular.io/api/core/Injector

关于此问题的长讨论:https://github.com/angular/angular/issues/18224

关于angular - 将http客户端注入(inject)HTTP拦截器Angular 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47619063/

相关文章:

Angulartics2初始设置

angular - 减少 ionic-2 应用程序的启动时间

javascript - "return $q.reject(response)"是做什么的?

angular - Angular 7 中的 HTTPInterceptor 行为异常

angular - 可选地在 Angular 4 中应用 http 拦截器

javascript - Angular 2如何防止特定变量的数据绑定(bind)

html - 如何基于Mat-Select选项显示输入框

Angular cli 服务生成 : service is generated in root instead of/services

angularjs - 如何在 Angular responseError 拦截器中处理多个响应

angular - 有条件地绕过 Auth0 HttpInterceptor