我在我的 angular 项目中使用了 http 拦截器。我有一个我想在运行时更改的变量,我可以向其中添加各种标头。我的拦截器的基本设置如下
export class HeaderInterceptor implements HttpInterceptor {
public additionalHeaders: KeyValuePair[]
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {.....
}
我在我的模块中初始化它如下。
providers: [{ provide: HTTP_INTERCEPTORS, useClass: HeaderInterceptor, deps: [AppConfigProvider, Router], multi: true }]
这一切正常,但我想不出在应用程序加载后更改 additionalHeaders 属性的方法。有没有办法将拦截器注入到组件中,或者有更好的方法来做到这一点?
与其直接访问拦截器,不如使用某种形式的状态服务或两个服务都可以交互的东西。
您想要的服务可以设置一些值,然后您的拦截器可以读取它们,而原始服务根本不需要知道拦截器是否存在。
服务可以像任何其他服务一样注入拦截器服务。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句