在Ionic中导入TranslateModule

时间:2018-08-14 09:51:26

标签: javascript ionic-framework angular-translate

我有一个离子应用程序,并使用ngx-translate进行翻译。

我在家中使用并将其导入home.module.ts

imports: [
    IonicPageModule.forChild(HomePage),
    TranslateModule.forChild({
      loader: {
        provide: TranslateLoader,
        useFactory: (createTranslateLoader),
        deps: [HttpClient]
      }
    })
  ],

但是当我将navController推入其他页面时,如果我使用的话:

{{ 'SOME_STRING' | translate }}

我有这个错误

Error: Uncaught (in promise): Error: Template parse errors:
The pipe 'translate' could not be found

我也可以解决在另一页中导入TranlateModule的问题,但是我有很多页面,它不是那么有用。

我以为

TranslateModule.forChild

将此模块“传递”到堆中的所有页面,

不是吗?我是否需要在所有页面中导入TranslateModule,然后使用Translate管道?

谢谢

1 个答案:

答案 0 :(得分:0)

import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {HttpClientModule, HttpClient} from '@angular/common/http';
import {TranslateModule, TranslateLoader} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
import {AppComponent} from './app';

// AoT requires an exported function for factories
export function HttpLoaderFactory(http: HttpClient) {
   return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

@NgModule({
    imports: [
        BrowserModule,
        HttpClientModule,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: HttpLoaderFactory,
                deps: [HttpClient]
            }
        })
    ],
    bootstrap: [AppComponent]
})
export class AppModule { }

尝试一下,您可以在这里找到更多说明:Doc