我的Angular 9应用程序中有一个Ag网格,可以正常运行无限滚动,我想实现一个像演示中那样的主题选择器。
然而,仅仅更改CSS类不足以更改主题,因为行高度不会在主题更改时更新。
在更改主题后,我尝试调用refreshCells
和resetRowHeights
,但都没有更新行高度。
演示的源代码似乎在主题更改时破坏并重新创建网格,而GitHub的这个问题似乎证实了动态更改主题的最佳方式是破坏网格并重新创建它
然而,在调用gridApi.destroy()
之后,我一直找不到重新创建网格的方法。
有办法做到这一点吗?
我在这个plunkr:中找到了答案
要销毁和重新创建网格,它需要位于具有*ngIf
的容器元素中,以便可以动态删除和重新创建:例如,如果容器元素是
<div *ngIf="gridActive">
<ag-grid ....>
</div>
然后在组件代码中,主题更改可以通过以下操作完成:
recreateGrid() {
this.gridActive = false;
setTimeout(() => {
this.gridActive = true;
});
}