首页 > 解决方案 > 如何有条件地向 app.module 添加拦截器?

问题描述

我阅读了其他主题,但没有一个能反映我的问题。背景优先——我们有一个 Angular 应用程序,它在两种模式下工作——在第一种模式下,应用程序使用一个 API,而在第二种模式下——另一个。

这个,我想要实现的是只有在第二种模式下才有 Http 拦截器。

那么,有没有办法根据一些 APP_CONFIG 文件或环境道具有条件地添加 Http 拦截器?

我创建了一种 setInterceptors() 辅助函数,它根据条件将这些拦截器添加到提供程序数组,但在构建过程中失败并带有消息:

装饰器不支持函数调用

标签: javascriptangularangular-httpclient-interceptors

解决方案


您可以为 2 种模式创建 2 个单独的模块,然后将其注入所需的模块提供程序中。

@Injectable({
  providedIn: YourModule
})
export class HttpInterceptorService implements HttpInterceptor {
}

YourModule是您要在其中应用拦截器的模块


推荐阅读