fys*_*ysp 6 javascript dependency-injection angular-http-interceptors angular2-services angular
我有AppModule
和LazyLoadedModule
。我想要从每个模块组件中得到的是:
应用程序模块.ts
@NgModule({
bootstrap: [AppComponent],
declarations: [
AppComponent,
],
imports: [
CoreModule,
HttpClientModule,
],
providers: [
{provide: HTTP_INTERCEPTORS,useClass: LoggerInterceptor,multi: true},
{ provide: HTTP_INTERCEPTORS, useClass: UrlInterceptor, multi: true }
],
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
延迟加载.module.ts
@NgModule({
declarations: [
LazyLoadedComponent,
],
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: FilterInterceptor, multi: true }
],
})
export class LazyLoadedModule {}
Run Code Online (Sandbox Code Playgroud)
问题是,当 LazyLoadedModule 延迟加载时,FilterInterceptor 不会包含在拦截器线程中,就像它从未被注入一样。
有什么想法吗?
我遇到了同样的问题,我的用例略有不同,但它可能对你有用。我的场景: - 我有一个与第三方集成的功能模块,该第三方 API 具有不记名令牌身份验证,因此我设置了拦截器。
如果您仅从功能模块提供拦截器,则不会调用它,同样,如果您从 AppModule 提供拦截器,它将起作用。
对我来说,修复方法是在功能模块中重新导入 HttpClientModule,并且它有效。
但是,您应该仔细测试重新导入 HttpClientModule 时,AppModule 中提供的拦截器仍然有效