Я разрабатываю угловой (ngx- *) пакет NPM. Я правильно его скомпилировал и использую в новом новом проекте, используя npm link
Сервис имеет следующий конструктор для внедрения HttpClient и настроек.
Обновлены.
MyService
constructor(private http: HttpClient, @Inject('configs') configs: ImyConfigs) {
MyService.Module
У меня есть следующее для root в модуле
@NgModule({
declarations: [
],
imports: [
CommonModule,
// note that I am not importing HttpClientModule
// My understanding is that if I do I will get duplicate issues?
],
exports: [],
providers: []
})
export class MyModule {
static forRoot(configs?: ImyConfigs): ModuleWithProviders {
return {
ngModule: MyModule,
providers: [MyService, { provide: 'configs', useValue: configs }]
};
}
App.module
Теперь в моем основном проекте (свежий проект Angular с использованием этого модуля) я хочу использовать этот сервис.
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule,
MyModule.forRoot(MYCONFIG_CONST)
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Я получаю следующую ошибку:
ERROR Error: StaticInjectorError(AppModule)[MyService -> HttpClient]:
StaticInjectorError(Platform: core)[MyService -> HttpClient]:
NullInjectorError: No provider for HttpClient!
Что я делаю не так в отношении внедрения HttpClient в myService?
Редактировать: я отвечу ниже.