我在Angular应用程序中使用ngx-translate。我导入并完成了app.module.ts中的所有操作:
import {HttpClientModule, HttpClient} from '@angular/common/http';
import {TranslateModule, TranslateLoader} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
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]
@NgModule({
imports: [
BrowserModule,
HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
],
bootstrap: [AppComponent]
我正在导入和导出模块,例如github ngx-translate页面上的示例。翻译器工作正常。
但是我有一个子文件夹,该子文件夹有自己的module.ts文件pages.module.ts。当我想在页面文件夹中的html文件上使用ngx-translate时,我有信息,该应用程序无法识别该翻译管道。我想我需要将元素从app.module.ts导入pages.module.ts。我尝试过,但是我不知道该怎么做。
答案 0 :(得分:4)
您很有可能必须在子模块TranslateModule.forChild
中使用TranslateModule.forRoot
(而不是pages.module.ts
)。
答案 1 :(得分:1)
创建一个共享模块文件(shared.module.ts)
import {HttpClient} from '@angular/common/http';
import {TranslateModule, TranslateLoader} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, '/assets/i18n/', '.json');
}
@NgModule({
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
], export: [TranslateModule]
然后将共享模块导入要在其中使用翻译服务的任何其他模块。