我正在组织中的一个项目中执行ag-grid。我知道ag-grid具有gridready事件函数,该函数最初会触发并使用所有grid api属性设置参数。我的rowdata不断变化,它来自其他组件,我添加了一个处理程序(函数),我想再次调用gridready事件,该事件将我的rowdata设置为最新值。问题是gridapi属性只会在第一次被初始化,我也想在我的处理程序中访问那些(gridapi)属性,现在这些属性变得不确定,即使在网格初始化和作用域丢失后,如何访问gridapi属性。我没有确切的代码,我添加了一些代码快照以准确描述我的情况。
@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)
}
答案 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);
}
}
希望有帮助!