0

我正在我的组织中开展一个项目,我必须实现 ag-grid 。我知道 ag-grid 有一个 gridready 事件函数,它最初会触发并使用所有网格 api 属性设置参数。我的行数据不断变化,它来自其他组件,我添加了一个处理程序(函数),我想再次调用 gridready 事件,它将我的行数据设置为最新值。问题是gridapi属性将仅在第一次初始化,我想访问我的处理程序中的那些(gridapi)属性现在变得未定义,即使在网格初始化和范围丢失后如何访问gridapi属性。我没有确切的代码,我添加了一些代码快照来准确描述我的情况。

网格组件.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)
} 
4

1 回答 1

0

根据ag-Grid 的文档,Grid API(api 和 columnApi)只有在触发 gridReady 事件后才可用。

如果我正确理解了您的问题,这是实现相同目标的另一种方法。

isGridAPIReady您可以尝试自己添加一个局部变量 ,grid.component.ts来跟踪该状态。

isGridAPIReady当 ag-grid GridReadyEvent 触发时设置为 true。

并最终rowData使用网格 api 设置新的:

//grid.component.ts

@Input()
rowData: any[];

ngOnChanges(changes: SimpleChanges): void {
    if (this.isGridAPIReady && changes['rowData']) {
      this.gridOptions.api.setRowData(this.rowData);
    }
}

希望能帮助到你!

于 2019-02-14T23:59:43.020 回答