如何有选择地为Angular模块提供拦截器

时间:2018-07-13 14:51:49

标签: angular service dependency-injection

使用Angular 6,我们可以注释要注入到根模块中的服务:

@Injectable({
  providedIn: 'root',
})
export class MyService {}

现在,说这叫一些后端。假设在开发过程中,我想使用拦截器来捕获后端请求并返回模拟数据。

这可以用元数据声明吗?

目前我正在这样做:

const providers = [];
if (!environment.production) {
  providers.push({
    provide: HTTP_INTERCEPTORS,
    useClass: MyServiceInterceptor,
    multi: true,
  });
}

但这将拦截器限制为功能模块。如果我在App根模块中执行此操作,则会破坏一些事情:

  • 应用模块需要对所有功能模块执行此操作,
  • 如果我正在开发另一个模块,这不会被抓住,现在可以了吗?

0 个答案:

没有答案