HTTP_INTERCEPTORS только в AppModule - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь реализовать отложенную загрузку в моем приложении Angular 6, все мои http-вызовы выполняются в FeatureModule (отложенная загрузка), но все равно мне нужно добавить HttpClientModule в моем AppModule, а не вFeatureModule.Не очень понял, почему.Кроме того, когда я добавил перехватчики в моем FeatureModule, они не перехватывали ни одного запроса.Я должен добавить его только в AppModule (наверное, это потому, что HttpClientModule в AppModule).

Я хочу понять, почему это так ??Почему мы не можем иметь HttpClientModule и HTTP_INTERCEPTORS только в FeatureModule, а не в AppModule, где я не совершаю никаких http вызовов?

1 Ответ

0 голосов
/ 12 июля 2019

Чтобы ответить на этот вопрос.

Добавляйте только HttpClientModule сразу к корневому уровню. Никаких других модулей независимо от того, как они импортированы lazy или eager, даже если они из библиотеки. Убедитесь, что он не импортирует HttpClientModule

Однако вы можете использовать провайдеров HTTP_INTERCEPTORS в разных модулях без проблем.

Когда вы импортируете HttpClientModule между модулями, а затем повторно импортируете его в другой модуль, он эффективно сбрасывает провайдеров для HTTP_INTERCEPTORS для этого модуля. Это намеренное поведение. Если вам нужна дополнительная информация об обсуждении, вы можете проверить: https://github.com/angular/angular/issues/20575

...