我正在使用Slick Grid渲染数据。相同的数据显示在地图上。我正在使用以下代码在Slick Grid中填充数据。
this.dataViewObj.beginUpdate();
if (items && items.length > 0) {
this.dataViewObj.setItems(items, ["id"]);
}
this.dataViewObj.endUpdate();
this.dataViewObj.refresh();
this.angularGrid.slickGrid.render();
this.angularGrid.gridService.renderGrid();
在地图上时,我正在DataView对象的“ onRowCountChanged”事件中呈现数据。
this.dataViewObj.onRowCountChanged.subscribe(function (e, args) {
/**
* iterate over data in data view object and create an array of pointData
*/
dataSharingService.notifyMapToRenderPoints.emit(pointData)
})
现在的问题是,在网格中首次呈现数据时以及每次将过滤器应用于网格时,都会调用“ onRowCountChanged”函数。
我想区分网格中的首次数据加载和滤波后的数据加载,因为这是我第一次要在地图上绘制点,并且每次应用滤镜时,都应基于同一点设置可见/不可见在网格中看到的数据上。
如何在Slick Grid中区分首次数据加载和过滤后的数据加载。
答案 0 :(得分:0)
您不能只声明
var dataHasLoaded = false;
在某处,并使用它来做出决定,例如:
this.dataViewObj.onRowCountChanged.subscribe(function (e, args) {
if (dataHasLoaded) {
refreshBehaviour();
} else {
dataLoadBehaviour();
dataHasLoaded = true;
}
})
您还可以设置
dataHasLoaded = false;
如果要再次加载数据,请在代码的其他位置。