如何在单击处理程序函数上调用AG-Grid的gridready事件

问题描述 投票:0回答:1

我正在组织一个项目,我必须实现ag-grid。我知道ag-grid有一个gridready事件函数,它最初会触发并设置所有grid api属性的params。我的rowdata不断更改来自其他组件,我添加了一个处理程序(函数),我想再次调用gridready事件,它将我的rowdata设置为最新的值。问题是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)
} 
angular2-template ag-grid-angular
1个回答
0
投票

根据ag-Grid's documentation的说法,Grid API(api和columnApi)只有在触发gridReady事件后才可用。

如果我正确理解你的问题,这是实现同样事情的另一种方法。

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

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

并最终使用grid api设置新的rowData

//grid.component.ts

@Input()
rowData: any[];

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

希望能帮助到你!

© www.soinside.com 2019 - 2024. All rights reserved.