Aggrid vue i18n:更改语言后不刷新网格标题名称未翻译

Posted

技术标签:

【中文标题】Aggrid vue i18n:更改语言后不刷新网格标题名称未翻译【英文标题】:Aggrid vue i18n: Grid header name not translated without refresh after change language 【发布时间】:2021-03-14 04:20:24 【问题描述】:

我在我的项目中使用 i18n 进行本地化,但是每当我更改语言时,所有页面的翻译都可以,除了网格标题名称!当我刷新页面时它变得正常了。如何在不刷新的情况下解决这种情况?

【问题讨论】:

【参考方案1】:

您可以通过调用阅读器 API 上的 refreshHeader 函数来解决此问题。 试试这个:

this.gridApi.refreshHeader();

其中 gridApi 是您从 onGridReady 事件参数获取的 API 对象。

编辑,如何获取 gridApi :

你从被 AgGrid 组件调用的 onGridReady 方法的参数中获得的 gridApi。 如果您使用的是 reactJs,则 agGrid 组件中名为 onGridReady 的属性将接受该功能。

onGridReady = params => 
    this.gridApi = params.api
    this.gridColumnApi = params.columnApi
...


【讨论】:

感谢您的回答,第一个 gridApi 不包含 refreshHeader 功能,即使我在我的网格中尝试了该功能并且没有工作。你能解释一下我该如何使用吗?例如:我更改了导航栏上的语言,并发出了刷新标题的函数,我使用了“this.gridApi.refreshHeader();”我到达 gridApi 的位置。 @ÖzlemUslu 刷新标头功能将重建标头,并在每个标头上执行headerValueGetter(如果存在)。你是如何进行国际化的?如果你在别处(除了 headerValueGetter),refreshHeader 方法可能对你没有帮助 通常我使用“headerName”来定义和本地化标题名称。我像你说的那样使用“headerValueGetter”并且它有效!非常感谢 :) 我不确定在整个项目中仅将其用于名称本地化是否有效。我的意思是“headerValueGetter”,我有很多网格。会影响性能吗? headerValueGetter 仅在渲染整个 agGrid 组件或调用刷新标头时才被调用。它确实会使页面卡顿半秒钟,所以不要过度使用它。

以上是关于Aggrid vue i18n:更改语言后不刷新网格标题名称未翻译的主要内容,如果未能解决你的问题,请参考以下文章

vue前端国际化Vue I18n使用入门

vue 全局css 路由刷新后不生效

ag Grid如何在更改复选框的值后刷新

Vue中使用i18n进行配置语言全球化

IBM Worklight 6.1 - 富页面编辑器在进行更改后不刷新

编辑后不刷新 ALV。为啥?