О программе: в определенном мной столе handsOnTable есть столбцы, которые обновляются на основе любых изменений в других столбцах. Если это обычное изменение, то столбцы, которые должны быть изменены, обновляются мгновенно, но когда я использую функцию перетаскивания для обновления одного из столбцов, столбцы, которые должны быть изменены из-за этого, требуют времени для обновления ( отставание).
фрагмент кода
$scope.handsOnTableSettings = {
preventOverflow: 'horizontal',
stretchH: 'all',
minSpareRows: 0,
dataSchema : {'x':'0', 'y':'0', 'z':'0.00', 'w':'000.00'},
colHeaders: true,
rowHeaders: false,
copyPaste: true,
afterInit: function () {
handsOnInstance = this;
},
cells: function (row, col) {
var cellProperties = {};
var data = this.instance.getData();
var keys = Object.keys($scope.stats)
if (data[row] && (col == 11 || col == 10 || col == 9 || col == 7 || col == 6 || col == 5 || col == 4) && data[row][11] && $scope.stats && $scope.stats[keys[row]] && $scope.stats[keys[row]][5] && !$scope.current)
cellProperties.readOnly = true;
return cellProperties;
}
return cellProperties;
},
afterChange: function (src, changes) {
if(src!=null){
src.forEach(function(src){
if (changes !== 'loadData') {
if (src[1] == 'x') {
if(src[3] === ""){
handsOnInstance.setDataAtCell(src[0], 9, 0)
}
handsOnInstance.setDataAtCell(src[0], 10, src[3] * handsOnInstance.getDataAtCell(src[0], 4) / 1000);
}
if (src[1] == 'y') {
handsOnInstance.setDataAtCell(src[0], 10, src[3] * handsOnInstance.getDataAtCell(src[0], 9) / 1000);
}
if (src[1] == 'z') {
$scope.total = _.sum(handsOnInstance.getDataAtCol(10)).toFixed(2);
handsOnInstance.setDataAtCell(src[0], 9, src[3] * 1000 / handsOnInstance.getDataAtCell(src[0], 4));
}
}
}
})}
}
версия handsOnTable
"@bower_components/handsontable": "handsontable/handsontable#~0.31.2",