随着从在 AppModule 中提供服务的 Angular 5 更改为在 @Injectable 装饰器中设置“provideIn”键的 Angular 6,我已将所有服务更改为使用新的“provideIn”方法。但是,我的拦截器服务例外。
如何为“root”提供 HTTP_INTERCEPTORS 令牌并使用 InterceptorService?
这是我使用 atm 的 Angular 5 方式:
@Injectable()
export class InterceptorService implements HttpInterceptor {
...
}
在 AppModule 中:
providers: [{
provide: HTTP_INTERCEPTORS,
useClass: InterceptorService,
multi: true
}]
但是Angular 6的方式是什么?
我试过类似的东西
@Injectable({
provideIn: 'root',
useValue: HTTP_INTERCEPTORS,
deps: [forwardRef(() => InterceptorService)]
})
export class InterceptorService implements HttpInterceptor {
...
}
以及许多其他带有 Injectable 的变体,但似乎无法弄清楚如何在不将对象文字直接写入模块提供者的情况下使其工作。