Angular 4.2.4 HttpInterceptor在共享模块的forRoot()中使用时不工作

Angular 4.2.4 HttpInterceptor在共享模块的forRoot()中使用时不工作,angular,module,lazy-loading,Angular,Module,Lazy Loading,我正在使用一个共享模块为Angular 4.2.4应用程序中的其他延迟加载模块提供组件和服务 除了我注入的HttpInterceptor之外,一切都很好 如果我将它添加到共享模块的forRoot()中,那么它不会被注入到延迟加载模块中的HttpCLient调用中 如果我把它放在共享模块的常规提供程序:[]部分,它确实会被注入到我的延迟加载模块中,但是它不再被视为一个单例,而是为每个模块初始化 有人知道为什么这样不行吗 现在,我只想允许拦截器有多个实例,但这并不是我最终想要的 shared.mod

我正在使用一个共享模块为Angular 4.2.4应用程序中的其他延迟加载模块提供组件和服务

除了我注入的HttpInterceptor之外,一切都很好

如果我将它添加到共享模块的forRoot()中,那么它不会被注入到延迟加载模块中的HttpCLient调用中

如果我把它放在共享模块的常规提供程序:[]部分,它确实会被注入到我的延迟加载模块中,但是它不再被视为一个单例,而是为每个模块初始化

有人知道为什么这样不行吗

现在,我只想允许拦截器有多个实例,但这并不是我最终想要的

shared.module.ts(在延迟加载模式下不工作)

shared.module.ts(在惰性加载中工作,但不是单例)

应用程序模块.ts

@NgModule({
  declarations: [
    AppComponent,
    PageNotFoundComponent,
    ShellComponent,
    MenuComponent,
    FooterComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    AppRoutingModule,
    SharedModule.forRoot()
  ],
  providers: [ ],
  bootstrap: [AppComponent]
})
export class AppModule { }
管理模块.ts(延迟加载模块)


我在
sharedmodule
forRoot
中遇到了完全相同的问题

见:


尝试从共享模块中删除
HttpClientModule

我遇到了与
sharedmodule
forRoot
完全相同的问题

见:

尝试从共享模块中删除
HttpClientModule

@NgModule({
  imports: [
    CommonModule,
    HttpClientModule,
  ],
  declarations: [ ],
  exports: [
    CommonModule,
  ],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: JwtHttpInterceptor,
      multi: true
    }
  ]
})  
export class SharedModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: SharedModule,
      providers: [
        HttpClient
      ]
    };
  }
}
@NgModule({
  declarations: [
    AppComponent,
    PageNotFoundComponent,
    ShellComponent,
    MenuComponent,
    FooterComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    AppRoutingModule,
    SharedModule.forRoot()
  ],
  providers: [ ],
  bootstrap: [AppComponent]
})
export class AppModule { }
@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    SharedModule
  ],
  declarations: [ ],
  providers: [ ]
})
export class AdminModule { }