Ionic3 错误:未捕获(承诺中):错误:StaticInjectorError(AppModule)[登录]:Ngx translate
我用它来实现我的离子应用中的i18n 下面是我的代码,运行良好,我能够实现i18nIonic3 错误:未捕获(承诺中):错误:StaticInjectorError(AppModule)[登录]:Ngx translate,ionic3,ngx-translate,Ionic3,Ngx Translate,我用它来实现我的离子应用中的i18n 下面是我的代码,运行良好,我能够实现i18n import { NgModule } from '@angular/core'; import { IonicPageModule } from 'ionic-angular'; import { LoginPage } from './login'; import { TranslateLoader, TranslateModule } from "@ngx-translate/core"; import {
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { LoginPage } from './login';
import { TranslateLoader, TranslateModule } from "@ngx-translate/core";
import { HttpClient } from "@angular/common/http";
import { PPMTranslateLoader } from "../../shared/PPMTranslateLoader";
export function createTranslateLoader(http: HttpClient) {
return new PPMTranslateLoader(http, [{prefix: './assets/i18n/',
suffix: 'login.json'}]);
}
@NgModule({
declarations: [LoginPage],
imports: [
IonicPageModule.forChild(LoginPage),
// Required to change translation language.
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
}
})
],
providers: [HttpClient]
})
export class LoginPageModule {
}
但是我不想在我的应用程序的每个模块中都使用CreateTransaleLoader方法,因此我考虑将其作为静态方法移动到CustomLoader中,并将文件名(不断动态更改)作为TranslateModule.forChild的配置对象中的deps数组的一部分进行传递
像这样的
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: (PPMTranslateLoader.createTranslateLoader), // static factory
deps: [HttpClient, LoginPageModule.staticFileName]
/\
||
||
||
( I want to pass this dynamically in every module where i need i18n)
}
})
但是使用这个配置,我最终得到了以下错误
Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[login]:
/\
||
||
||
(This staticFileName is getting resolved but it's not being injected)
有人能提出实现这一目标的正确方法吗