我想知道为什么从AG Grid(Angular)从版本28升级到版本29或30(撰写本文时最新)需要对我们的代码进行以下更改...
我正在升级现有 Angular (v15) 项目的依赖版本。它使用AG Grid(社区版,旧版本:v28,我正在尝试升级到最新版本:v30)。该项目针对多种语言进行了国际化,因此它依赖于 @ngx-translate (v14) 功能来提供适当语言的文本。具体来说,对于 AG Grid 的 overlay templates,这使用 TranslatePipe,如下面的代码片段所示。
在 Ag Grid v28 上,代码如下所示:
<ag-grid-angular
...
overlayLoadingTemplate="{{'loading' | translate}}"
overlayNoRowsTemplate="{{'no_records' | translate}}"
</ag-grid-angular>
升级 AG Grid 版本时:
"ag-grid-angular": "^30.0.2",
"ag-grid-community": "^30.0.2",
...突然数据不再显示在网格中(是的,我确定存在行数据)。控制台日志还显示此(非常无用)错误消息:
错误类型错误:无法设置 null 的属性(设置“__agComponent”)
带有堆栈跟踪。
经过尝试,我发现在车把胡须之外添加随机文本或有用的 HTML 标签会突然使网格数据出现(并且控制台日志错误消失)。
在 Ag Grid v29 和 30 上,此代码有效(注意添加了
<p>
标签):
<ag-grid-angular
...
overlayLoadingTemplate="<p>{{'loading' | translate}}"
overlayNoRowsTemplate="<p>{{'no_records' | translate}}"
</ag-grid-angular>
我很困惑,因为 v28 代码确实为
overlay...Template
属性提供了有效的 HTML(纯文本是有效的 HTML,不是吗?)。 如果有人可以阐明此更改背后的原因,或者向我指出突出显示此更改的文档,我将非常感激。 或者是否有涉及 TranslatePipe
的更模糊的原因?我很困惑。