如何将函数传递给角度ui-grid列总计

时间:2015-10-07 22:01:19

标签: angular-ui-grid

我正在使用角度ui-grid(没有ng-grid),并希望传递一个函数来计算列的总值。在文档中,他们明确表示这是可能的;只是我找不到怎么做。

这就是我为其他列显示总和(总和)的方式:

aggregationType: uiGridConstants.aggregationTypes.sum,
aggregationHideLabel: true,
footerCellFilter: 'currencyFilter', 
footerCellClass: 'ui-grid-centerCell'

现在,我想传递一个函数来计算值,而不是使用 uiGridConstants.aggregationTypes.sum

非常感谢和再见......

2 个答案:

答案 0 :(得分:0)

我的想法是在你的控制器中创建一个方法,如

$scope.sum = function(row){
var sum1 = row.entity.sum1 + row.entity.sum2;
console.log('Sum of Value is = ',sum1);
}

注意:sum1和sum2是Field值的columnDef,如

$scope.gridsOptions = {
columnDefs : [
        {
            field : 'sum1',
            name :'xx'
        },
        {
            field : 'sum2',
            name : 'xxx'
        }
 ]}

答案 1 :(得分:0)

您还可以通过添加自定义树聚合来解决此问题。

 treeCustomAggregations: {
  sum: { 
   aggregationFn: stats.aggregator.sumSquareErr, finalizerFn: function (aggregation) { 
   //Do rest of your calculations here
   var total = $scope.gridApi.grid.columns[column_number].getAggregationValue() ;
  aggregation.value = total ;
  aggregation.rendered = (aggregation.value).toFixed(1);
 }

或者您可以参考this自定义聚合模板的问题并从中调用自定义函数。