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

时间:2018-12-04 17:37:56

标签: angular2-template ag-grid-angular

我正在组织中的一个项目中执行ag-grid。我知道ag-grid具有gridready事件函数,该函数最初会触发并使用所有grid api属性设置参数。我的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)
} 

1 个答案:

答案 0 :(得分:0)

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

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

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

当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);
    }
}

希望有帮助!