是否可以动态添加农业网格本地化?

时间:2019-01-18 15:30:56

标签: javascript angular typescript ag-grid ag-grid-angular

我正在使用AgGridModule框架的ag-grid Angular包装器。我的应用程序是Angular AOT应用程序,它使用ngx-translate库处理本地化(对于当前选择的语言,该库在页面加载时动态加载翻译数据文件)。这意味着翻译只能异步使用。因此,我不能只在localeTextas recommended)中设置gridOptions属性,因为在生成网格之前我没有文本。

有人知道如何处理这种情况吗?理想情况下,我只是将RxJS Observable分配给localeText属性,该属性会在准备就绪时发送适当的texts对象,但是目前似乎无法正常工作。

1 个答案:

答案 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之前已加载翻译。