【发布时间】:2019-04-25 09:03:30
【问题描述】:
我们在 Angular 中制作了一个拦截器。这个是通过核心模块中的 forRoot() 导出的。 app 模块使用 forRoot() 导入这个核心模块。
在延迟加载的功能模块中,拦截器是未知的。
我们如何解决这个问题?
http客户端模块在app模块中只导入一次。
【问题讨论】:
-
您是否提供了您的拦截器,以便它在将要使用的模块上可用?
-
拦截器应该用在所有模块上。它在核心模块中提供了一个forRoot方法,只有app模块导入核心模块。
-
我没有明白你的意思,通过使用 forRoot 提供它。 AFAIK 您应该将其提供为 { 提供:HTTP_INTERCEPTORS,useClass:InterceptorClass,multi:true }。另外,您是否尝试直接在 AppModule 上提供它?
-
我使用了 HTTP_INTERCEPTORS, multi: true... 构造。它是在 CoreModule.forRoot() 中设置的
-
我建议你:在 AppModule 上提供它,或者在延迟加载的模块上导入核心模块,或者将拦截器移动到共享模块并在任何需要的模块上导入它。
标签: angular angular-http-interceptors