angular - Angular ngx-translate 内部服务
问题描述
我正在使用 ngx-translate 和 ngx-translate/http-loader 来翻译我的 ionic/angular 项目。我在 app.module.ts 导入中有这段代码:
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpBackend]
}
})
和这个加载器函数在同一个文件中:
export function createTranslateLoader(handler: HttpBackend) {
const http = new HttpClient(handler);
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
这让我有机会在组件的 html 中使用这种翻译语法:{{ 'TEXT' | translate }}
,我也可以编写类似的东西来翻译组件的 ts 文件: var text = this.translateService.instant("TEXT");
现在我想使用由我尝试过translateService.instant
的命令生成的内部服务"ng generate s"
,但它不起作用,它会"TEXT"
自行返回。那么问题是什么?
解决方案
尝试this.translateService.get("TEXT").subscribe(...)
见:https ://github.com/ngx-translate/core#4-use-the-service-the-pipe-or-the-directive
instant(key: string|Array, interpolateParams?: Object): string|Object: 获取键(或键数组)的即时转换值。/!\ 这个方法是同步的,默认的文件加载器是异步的。您有责任知道您的翻译何时已加载,并且使用此方法是安全的。如果您不确定,那么您应该使用 get 方法。
推荐阅读
- php - mysqli_connect(): (HY000/2002): 与远程服务器的连接尝试失败
- python - Python按顺序返回列表中的重复项列表
- c# - 如何在我的 C# TreeView 中仅查看包含具有 ReadOnly 属性的 PDF 的目录?
- java - 如何遍历数组的下一个位置
- python - 用python“双重加盐”密码
- python - 'webdriver' 可执行文件需要在 PATH 中
- rdf - 如何基于属性值而不是类编写 RDF 域和范围限制
- regression - 使用 EuclideanLoss 层与 Caffe 进行回归
- java - 尝试查询 MongoDB 数据时出现问题
- javascript - 如何捕获变量的当前值?