![](/img/trans.png)
[英]NullInjectorError: StaticInjectorError(AppModule)[NGXLoggerHttpService -> HttpBackend]:
[英]NullInjectorError: StaticInjectorError(AppModule)[TranslateService -> TranslateStore]
我有以下結構
app.module.ts
@ngModule({
imports: [
// other imports
SharedModule,
TranslateModule.forRoot({
loader: { provide: TranslateLoader, useFactory: createTranslateLoader, deps: [HttpClient] }
})
],
providers: [
// other providers
TranslateService
]
})
export class AppModule { }
共享模塊.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: No provider for TranslateStore!
從 Angular 6 遷移到 Angular 8 時,錯誤開始出現。
該錯誤不會出現在該AnotherComponentModule
內的組件中,所以不知何故它只出現在直接在SharedModule
聲明的SharedModule
。
當我將 MyComponent 放在它自己的模塊中並將其導入 sharedModule 時,事情就開始工作了。
我曾嘗試將TranslateService
和TranslateStore
添加到SharedModule
以及包含使用MyComponent
的組件的模塊,但它沒有工作。
我有同樣的問題。
您需要在 app.module 中導入 HttpClientModule
嘗試這個:
@ngModule({
imports: [
HttpClientModule
SharedModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
],
providers: []
})
export class AppModule { }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.