ngx-datatable元件table重新計算,手動觸發resize事件

weixin_34128411發表於2018-08-10

最近寫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();

相關文章