【问题标题】:Ag-Grid onGridReady not getting parameters?Ag-Grid onGridReady 没有获取参数?
【发布时间】:2019-09-18 11:36:46
【问题描述】:

我一直在使用 ag-grid,在查看其他示例时,我看到了人们用来将 ag-grid api 保存为变量以供以后使用的以下 sn-p 代码。

HTML:

 template: `
<ag-grid-angular
  id="grid"
  style="width: 100vw;"
  [style.height] = 'height'
  class="ag-theme-balham ag-grid"
  [columnDefs]="columnDefs"
  [gridOptions]="gridOptions"
  (gridReady)="onGridReady($event)"
></ag-grid-angular>`

打字稿:

onGridReady(params){
this.resizeGrid();
this.gridApi = params.api;
this.columnsApi = params.columnApi;}

我一直在尝试做类似的事情,但是当我尝试同样的事情时,params 显示为“未定义”。我已经尝试了各种方法来尝试获取 api,但它对我不起作用。我的网格正确加载了我传递给它的数据,但它一直告诉我 params.api 未定义。我在这里错过了什么?

【问题讨论】:

    标签: ag-grid ag-grid-angular


    【解决方案1】:

    经过多次试验和错误后设法弄清楚,发布解决方案以防万一有人遇到同样的问题。

    我从我的 HTML 代码中取出 (gridReady)="onGridReady($event)",并将以下内容添加到我的 GridOptions 声明中:

    onGridReady: this.onGridReady.bind(this),
    

    之后我创建了一个新方法来设置 api,这似乎工作得很好。

    onGridReady(event: any){
    this.gridApi = event.api;
    this.gridApi.sizeColumnsToFit();
    }
    

    【讨论】:

      【解决方案2】:

      您可以尝试从 HTML 模板中删除 gridOptions

      <ag-grid-angular
        style="width: 600px; height: 500px;"
        class="ag-theme-balham"
        [columnDefs]="columnDefs"
        [animateRows]="true"
        [pagination]="true"
        [sortingOrder]="sortingOrder"
        (gridReady)="onGridReady($event)"
      
      ></ag-grid-angular>
      

      注意:在上面的 HTML 模板中没有使用 gridoptions。

      如果您想从 API 加载数据。在 .ts 文件中

        onGridReady(params) {
          this.gridApi = params.api;
          console.log('grid api', params.api);
          this.gridColumnApi = params.columnApi;
          // const dataValue = [{firstName: 'Ragavan', age: 31}, {firstName: 'Mike', age: 50}];
          this.http.get('https://your-mock-url/params')
            .subscribe(data => {
                params.api.setRowData(data);
              }
            );
        }
      

      试试上面的代码。希望它应该工作。

      【讨论】:

      • 感谢您的回复!谢天谢地,我不久前设法弄清楚了,但不使用 GridOptions 也可能工作。
      • 很高兴。它为你工作。任何进一步的帮助很乐意提供帮助
      • 所以我在 onGridReady 中有 params.api.setSortModel'。但是在单元测试时我得到错误无法读取属性'setSortModel'。我也尝试过异步。但不工作@RagavanRajan
      猜你喜欢
      • 2021-03-31
      • 2018-09-29
      • 2020-06-20
      • 2021-01-15
      • 2019-09-11
      • 2020-03-06
      • 2018-07-23
      • 2020-06-11
      • 2020-05-23
      相关资源
      最近更新 更多