如何在 click Handler 函数上调用 AG-Grid 的 gridready 事件
Posted
技术标签:
【中文标题】如何在 click Handler 函数上调用 AG-Grid 的 gridready 事件【英文标题】:How to call gridready event of AG-Grid on a click Handler function 【发布时间】:2019-05-06 05:07:58 【问题描述】:我正在我的组织中开展一个项目,我必须在其中实施 ag-grid。我知道 ag-grid 有一个 gridready 事件函数,它最初会触发并设置具有所有网格 api 属性的参数。我的行数据不断变化,它来自其他一些组件,我添加了一个处理程序(函数),我想再次调用 gridready 事件,它将我的行数据设置为最新值。问题是gridapi属性只会在第一次初始化,我想访问我的处理程序中的那些(gridapi)属性现在变得未定义,即使在网格初始化和范围丢失后如何访问gridapi属性。我没有确切的代码,我添加了一些代码快照来准确描述我的情况。
grid.component.ts
@Input() gridData
ngOnit()
handler()
want to call grid ready but params will be undefined ,how to set this gridapi properties.
gridready()
gridready(params)
this.gridapi =params.api;
this.columnapi =params.clumnapi
this.gridapi.setRowData(this.gridData.rowData)
【问题讨论】:
【参考方案1】:根据ag-Grid's documentation,Grid API(api 和 columnApi)只有在触发 gridReady 事件后才可用。
如果我正确理解您的问题,这是实现相同目标的另一种方法。
您可以尝试在自己的grid.component.ts
中添加一个局部变量isGridAPIReady
来跟踪该状态。
当 ag-grid GridReadyEvent 触发时,将 isGridAPIReady
设置为 true。
并最终使用网格 api 设置新的rowData
:
//grid.component.ts
@Input()
rowData: any[];
ngOnChanges(changes: SimpleChanges): void
if (this.isGridAPIReady && changes['rowData'])
this.gridOptions.api.setRowData(this.rowData);
希望对你有帮助!
【讨论】:
以上是关于如何在 click Handler 函数上调用 AG-Grid 的 gridready 事件的主要内容,如果未能解决你的问题,请参考以下文章
NET问答: 如何从 event 中移除所有的 handler ?