Я пытаюсь использовать угловой сервис, который я создал в независимой библиотеке с именем HttpService . Я использую этот сервис в другом угловом сервисе в моем текущем проекте, его имя IdentityService . Я пытаюсь внедрить HttpService в IdentityService , но angular всегда говорит NullInjectorError: Нет поставщика для HttpService! .
Я определил несколькокак это в моем app.module.ts :
import { HttpService } from '@my-http';
... some more imports
@NgModule({
declarations: [
...
],
imports: [
...
],
providers: [
IdentityService,
HttpService
],
exports: [...],
bootstrap: [...],
schemas: [...],
entryComponents: [...]
})
export class AppModule { }
Это дает мне ошибку NullInjectorError: Нет поставщика для HttpService! при попытке ввести HttpService в IdentityService конструктор.
Затем я изменил его так:
import { HttpService } from '@my-http';
... some more imports
@NgModule({
declarations: [
...
],
imports: [
...
],
providers: [
{
provide: IdentityService,
useClass: IdentityService,
deps: [HttpService]
},
HttpService
],
exports: [...],
bootstrap: [...],
schemas: [...],
entryComponents: [...]
})
export class AppModule { }
И это действительно работает!
Iпопытался воспроизвести это поведение в тестовом проекте и не смог. В тестовом проекте Внедрение зависимостей работает должным образом, и угловой не заставляет меня устанавливать атрибут deps , так что работает первый способ определения провайдеров.
Iхотел бы понять, каковы возможные причины такого поведения углов, для работы установите один атрибут deps .