Angular可选多个拦截器-为什么注入为null?
创始人
2024-10-27 20:01:24
0

在Angular中,可以使用拦截器来处理HTTP请求和响应。有时需要在多个拦截器之间切换或添加可选拦截器。但是,在使用可选拦截器时,有时会遇到注入null的问题。

解决这个问题的方法是添加一个provideIn选项,并将其设置为“root”。这将确保提供程序在根注入器中注册,并且不会在任何地方注入null。

以下是一个示例拦截器:

@Injectable({ providedIn: 'root' })
export class MyInterceptor implements HttpInterceptor {
  constructor() {}

  intercept(req: HttpRequest, next: HttpHandler): Observable> {
    // Do something with the request
    const modifiedReq = req.clone({ headers: req.headers.append('Authorization', 'Bearer my-token') });

    // Pass the request to the next interceptor or HttpHandler
    return next.handle(modifiedReq);
  }
}

要在应用程序中添加多个拦截器,只需将它们作为provideIn选项为“root”的单独服务进行注册,然后在HttpClient模块中使用provide选项注入它们。如下所示:

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, HttpClientModule],
  providers: [
    { provide: HTTP_INTERCEPTORS, useClass: MyInterceptor, multi: true },
    { provide: HTTP_INTERCEPTORS, useClass: AnotherInterceptor, multi: true }
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

通过将多个拦截器注册为单独的服务,并使用provide选项将它们注入到HttpClient模块中,您可以在应用程序中使用任意数量的拦截器,而无需担心注入为null的问题。

相关内容

热门资讯

wepoke有挂!fishpo... wepoke有挂!fishpoker软件辅助(透视)固有有挂(详细辅助技巧教程)是一款可以让一直输的...
辅助透视!wepoke是真的有... 辅助透视!wepoke是真的有挂,wepoke透明挂怎么识别,详细透视分享教程一、wepoke是真的...
wepoke是真的有挂!nzt... wepoke是真的有挂!nzt德州辅助软件(透视)原先真的是有挂(详细辅助我来教教你);是一款可以让...
透视ai代打!wepoke有辅... 透视ai代打!wepoke有辅助挂,wepoke辅助德之星,详细透视靠谱教程;1)wepoke辅助德...
德州之星插件!wepoke a... 德州之星插件!wepoke app系统规律(透视)切实有挂(详细辅助解说技巧)1、超多福利:超高返利...
透视代打!wepoke插件,w... 透视代打!wepoke插件,wepooke app系统规律,详细透视揭秘教程1、起透看视 wepok...
德扑之星有作弊!来玩德州app... 您好,德扑之星有作弊这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这...
透视了解!wepokeai代打... 透视了解!wepokeai代打,wopoker辅助软件,详细透视透明教程1、每一步都需要思考,不同水...
aapoker挂!微扑克有机器... aapoker挂!微扑克有机器人吗(透视)切实是有挂(详细辅助解密教程)1、很好的工具软件,可以解锁...
透视辅助!wepok软件透明挂... 透视辅助!wepok软件透明挂,wepoke软件能玩吗,详细透视透明教程1、用户打开应用后不用登录就...