2017-08-28 80 views
4

我刚将我的Angular v4.2.5应用升级到Angular v4.3.6,主要使用Interceptors。这是一个非常棒的功能,并提供了一个干净的方法来拦截HTTP调用。模块级别的角度HTTP拦截器

但是,看来我不能在模块级别定义拦截器。例如,我有一个AppModule,以及另外两个模块AModuleBModuleAModuleBModule都包含在AppModule中。

现在,有没有办法在Angular 4中,我可以在模块级别定位拦截器,这样我用于AModule中的HTTP请求的拦截器就不应该用于BModule中的HTTP请求。目前,拦截器正在所有HTTP调用中共享,这并不是我预期的。我知道providers从所有模块合并到父模块,但有什么办法来限制这种事情吗?

任何帮助,高度赞赏。

+0

如果您有两种扩展Http的服务并将它们添加到相应模块的“提供程序”中,该怎么办? 'AService'到'AModule'和'BService'到'BModule',服务是否只适用于线程模块? –

回答

2

为来自不同服务的请求添加一个标头或标志?然后用它来描述它来自哪里。

+1

是的,在适当的字符串后面添加了api url,然后在拦截器中根据附加的字符串确定是否采取行动。 –