Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic3 错误:未捕获(承诺中):错误:StaticInjectorError(AppModule)[登录]:Ngx translate_Ionic3_Ngx Translate - Fatal编程技术网

Ionic3 错误:未捕获(承诺中):错误:StaticInjectorError(AppModule)[登录]:Ngx translate

Ionic3 错误:未捕获(承诺中):错误: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 {

我用它来实现我的离子应用中的i18n

下面是我的代码,运行良好,我能够实现i18n

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)
有人能提出实现这一目标的正确方法吗