【问题标题】:How to call gridready event of AG-Grid on a click Handler function如何在 click Handler 函数上调用 AG-Grid 的 gridready 事件
【发布时间】: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)
} 

【问题讨论】:

    标签: angular2-template ag-grid-angular


    【解决方案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);
        }
    }
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 2021-02-22
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 2020-09-08
      • 2021-11-12
      • 2020-07-09
      相关资源
      最近更新 更多