我有AppModule
和LazyLoadedModule
。我想从每个模块组件中得到的是:
app.module.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 {}
懒惰loaded.module.ts
@NgModule({
declarations: [
LazyLoadedComponent,
],
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: FilterInterceptor, multi: true }
],
})
export class LazyLoadedModule {}
问题是当LazyLoadedModule延迟加载时,FilterInterceptor不包含到拦截器线程,就像从未注入过一样。
有什么想法吗?
答案 0 :(得分:0)
我遇到了同样的问题,我的用例略有不同,但它可能适合你。 我的情景: - 我有一个与第三方集成的功能模块,这个第三方API有承载令牌认证,所以我设置了我的拦截器。
如果您只提供功能模块中的拦截器,它就不会被调用,类似地,如果您从AppModule提供拦截器,它将起作用。
对我来说,修复是重新导入功能模块中的HttpClientModule并且它有效。
然而,您应该仔细测试,当重新导入HttpClientModule时,AppModule中提供的拦截器仍可正常工作