ngx-datatable组件table重新计算,手动触发resize事件

最近写Angular项目用到@swimlane/ngx-datatable组件,其中table有一个recalculate()方法,可以重新计算网格大小。由于左侧边栏可以伸缩导致table没有重新计算,看了下ngx-datatable的实现源码,原来是这样的:

/**
* Window resize handler to update sizes.
 */
@HostListener('window:resize')
@throttleable(5)
onWindowResize(): void {
  this.recalculate();
}

只有触发window的resize事件才能重新计算,故想到一个方法:手动触发一个resize事件加入异步队列得以解决。

// 1. 得到组件
@ViewChild('datatable') datatable;
// 2. 触发方法
const e = document.createEvent('Event');
e.initEvent('resize', true, true);
window.dispatchEvent(e);
this.datatable.recalculate();

你可能感兴趣的:(ngx-datatable组件table重新计算,手动触发resize事件)