javascript - 是否可以动态添加 ag-grid 本地化?
问题描述
我正在使用框架的AgGridModule
Angular 包装器。ag-grid
我的应用程序是一个 Angular AOT 应用程序,它使用ngx-translate库(它在页面加载时动态加载当前选择的语言的翻译数据文件)处理本地化。这意味着翻译只能异步使用。因此,我不能只在(推荐localeText
的)中设置属性,因为在生成网格之前我没有文本。gridOptions
有谁知道如何处理这种情况?理想情况下,我只需将 RxJS 分配Observable
给该localeText
属性,该属性将在准备好时发送适当的文本对象,但这目前似乎不起作用。
解决方案
这可以通过提供您自己的localeTextFunc
. 该函数从网格中获取键并使用网格外部的翻译函数(在我们的例子中为 ngx-translate)进行翻译。如果未找到匹配项,则应返回默认值(即网格的英文值,即网格默认语言)。
this.gridOptions = {
localeTextFunc: (key: string, defaultValue: string) => {
// look the value up. using the ngx translate service
const data = this.translate.instant(key);
return data === key ? defaultValue : data;
}
};
TranslateService
从 '@ngx-translate/core' 注入翻译以使用同步方法translate.instant()
。但请确保在调用即时方法之前已加载翻译。
推荐阅读
- ruby-on-rails - 确定代码是否在某个块内运行
- git - 提示“是否要将以下文件添加到 Git?” 究竟是做什么的?
- r - 创建变量对的清晰可区分的线图
- scala - 限制scala中的小数位
- sonarqube - 如何在首次运行 sonarqube 项目时强制设置质量门
- c - 交叉编译 shellcode 到 arm
- input - C# 用户输入出现在下面而不是在请求行旁边
- javascript - js 文件不适用于 Bootstrap 4
- java - 如何更新数组内的部分文档?(MongoDB SpringBoot 反应式)
- redux - 如何管理 Redux/ngrx 状态下的实体?