У меня есть следующая структура
app.module.ts
@ngModule({
imports: [
// other imports
SharedModule,
TranslateModule.forRoot({
loader: { provide: TranslateLoader, useFactory: createTranslateLoader, deps: [HttpClient] }
})
],
providers: [
// other providers
TranslateService
]
})
export class AppModule { }
shared.module.ts
@ngModule({
declarations: [MyComponent]
imports: [
// other imports
AnotherComponentModule,
TranslateModule.forChild()
],
exports: [MyComponent]
})
export class SharedModule { }
При этой настройке я получаю ошибка
ОШИБКА NullInjectorError: StaticInjectorError (AppModule) [TranslateService -> TranslateStore]: StaticInjectorError (Platform: core) [TranslateService -> TranslateStore]: NullInjectorError: Нет поставщика для TranslateStore!
Ошибка начала появляться при миграции с Angular 6 на Angular 8.
Ошибка не появляется в компонентах внутри этого AnotherComponentModule
, так что почему-то это только в компонентах, объявленных непосредственно в SharedModule
.
Когда я помещаю MyComponent в его собственный модуль и импортирую его в sharedModule, все начинает работать.
Я попытался добавить TranslateService
и TranslateStore
к SharedModule
, а также модуль, содержащий компонент, используя MyComponent
, но он не работал.