Pivottable.js排序后总计列显示错误值问题求助
问题分析与修复方案
我一眼就发现问题出在你的successRate聚合函数里,这可是个容易踩的小坑!
问题根源
你在value方法里写了return (this.sumSuccesses++)——这里的后置自增++是罪魁祸首!Pivottable.js在渲染、排序,尤其是计算总计列的时候,会多次调用value方法获取数值。每次调用这个方法,sumSuccesses都会被额外加1,次数多了数值自然就乱掉,导致单元格和总计列的数值对不上。
修复后的代码
把value方法里的自增操作删掉,直接返回累加好的sumSuccesses就行:
var successRate = function() { return function() { return { sumSuccesses: 0, sumTrials: 0, totalRecord:0, push: function(record) { if (!isNaN(parseFloat(record['temp']))) { this.sumSuccesses += parseFloat(record['temp']); } this.totalRecord++; }, value: function() { return this.sumSuccesses; }, // 移除多余的自增操作 format: function(x) { return $filter('number')(x,2) }, numInputs: 0 }; }; };
额外提醒
另外注意下配置里aggregators的键是"temp",确保这个键和你实际要统计的字段逻辑对应,避免其他潜在的显示问题。
内容的提问来源于stack exchange,提问作者niran
相关产品推荐
相关产品推荐

