首页 > 解决方案 > angular - 在两个单独的 ag-Grid 上使用 ag-Grid 的 sizeColumnsToFit() 时警告“网格零宽度”?

问题描述

我的 ag-grid 有问题,我在控制台中收到这个警告,我做了一些研究,但没有一个能解决我的问题,而且我不知道我的代码有什么问题,从我理解的角度材料来看是我的应用程序中的内存泄漏,但我不明白。

ag-Grid:尝试调用 sizeColumnsToFit() 但网格以零宽度返回,也许网格在屏幕上还不可见?

请,

如果您知道如何修复,或者如果我的代码有问题,即使是最小的帮助,我也会非常感激。

我尝试了什么:

@HostListener('window:resize')
onResize() {
  if (!this.gridApi) return;

  setTimeout(() => {
    this.gridApi.sizeColumnsToFit();
  });
}

这个 :

 afterGridReady() {
    if (this.language === 'en') {
      this.appgrid.columnApi.setColumnsVisible(['name'], true);
      this.appgrid.columnApi.setColumnsVisible(['nameCZ'], false);
    } else {
      this.appgrid.columnApi.setColumnsVisible(['nameCZ'], true);
      this.appgrid.columnApi.setColumnsVisible(['name'], false);
    }
    this.api.sizeColumnsToFit();
    window.addEventListener('resize', function () {
      setTimeout(function () {
        this.api.sizeColumnsToFit();
      });
    });
  }

先感谢您。

标签: angulartypescript

解决方案


您可以使用提供的 selectChange 事件。它在选项卡选择更改时触发。从文档中:

@Output() selectChange :选项卡选择发生更改时发出的事件。

在您的模板中:

<md-tab-group (selectChange)="tabSelectionChanged($event)">
  <md-tab label="Tab 1">Content 1</md-tab>
  <md-tab label="Tab 2">
    This tab will load some morecontents after 5 seconds.
    <p>{{ moreContents }}</p>
  </md-tab>
</md-tab-group>
... and in your typescript code:

tabSelectionChanged(event){
    // Get the selected tab
    let selectedTab = event.tab;
    console.log(selectedTab);

    // Call some method that you want 
    this.someMethod();
}

推荐阅读