Я создаю веб-приложение с Angular 8, и у меня есть два HTTP-перехватчика. Я хочу, чтобы Interceptor A запускался только при отправке запросов из модуля A. Я хочу, чтобы Interceptor B срабатывал только при отправке запросов из модуля B.
Я мог бы проверять запросы на наличие определенных шаблонов регулярных выражений в перехватчиках, но Я сочту это хакером.
Я могу установить заголовки в соответствии с этим ответом , но я не хочу, чтобы мои службы знали о перехватчиках.
I я не могу использовать HTTPBackend, потому что я хочу перехватчики сработать - я просто не хочу, чтобы оба из них срабатывали при каждом запросе.
У меня есть попробовал поместить их в мои модули так:
MySubmodule1.module.ts
@NgModule({
declarations: [
MyComponent1,
MyComponent2,
...
],
imports: [
RouterModule.forChild(routes),
...
HttpClientModule,
],
providers: [
MyService1,
{ provide: HTTP_INTERCEPTORS, useClass: InterceptorA, multi: true}
]
})
MySubmodule2.module.ts
@NgModule({
declarations: [
MyComponent1,
MyComponent2,
...
],
imports: [
RouterModule.forChild(routes),
...
HttpClientModule,
],
providers: [
MyService1,
{ provide: HTTP_INTERCEPTORS, useClass: InterceptorB, multi: true}
]
})
Отсюда они оба запускают каждый запрос, даже запросы других модулей.
Неужели нет простого способа сделать это в 2020 году?