我正在使用AgGridModule
框架的ag-grid
Angular包装器。我的应用程序是Angular AOT应用程序,它使用ngx-translate库处理本地化(对于当前选择的语言,该库在页面加载时动态加载翻译数据文件)。这意味着翻译只能异步使用。因此,我不能只在localeText
(as recommended)中设置gridOptions
属性,因为在生成网格之前我没有文本。
有人知道如何处理这种情况吗?理想情况下,我只是将RxJS Observable
分配给localeText
属性,该属性会在准备就绪时发送适当的texts对象,但是目前似乎无法正常工作。
答案 0 :(得分:0)
这可以通过提供自己的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()
方法。但是请确保在调用Instant Mthod之前已加载翻译。