我想知道如何在角度2中有条件地添加httpInterceptor。在angularjs中,它是可能的。
if (httpProvider && httpProvider.interceptors) {
httpProvider.interceptors.push('MyTestInterceptor');
}
我正在创建一个角度库,我想让用户自由使用我的httpInterceptor或使用他们自己的。
在MyLibrary
export class MyModule {
static forRoot(config: MyConfig ): ModuleWithProviders {
return {
ngModule: MyModule,
providers: [
{provide: MY_CONFIG, useValue: config} , MyService ,
{ provide: HTTP_INTERCEPTORS, useClass: MyInterceptor, multi: true }
]
}
}
}
用户申请
@NgModule({
declarations: [
AppComponent, HomeComponent ,ContactComponent,ProductComponent,ErrorComponent,ProductDetailComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(appRoutes),
MyModule.forRoot({
//some config data
})
],
providers: [ProductService],
bootstrap: [AppComponent]
})
export class AppModule { }