Angularjs 如何在ng网格中设置分组聚合

Angularjs 如何在ng网格中设置分组聚合,angularjs,angular-ui,ng-grid,Angularjs,Angular Ui,Ng Grid,我希望看到网格中每个组的总数(或者通常是任何聚合函数) 这是要求的,并在问题中完成:(但不幸的是,没有任何例子) 我可以通过aggregateTemplateconfig选项重新定义默认模板。但我不知道如何适当地扩展它 这个模板在ng网格范围内进行评估,我不知道如何触发我的自定义聚合函数。我想创建与“totalChildren”类似的函数(来自) 有什么想法吗?我找到了答案: 对于completenes,这里是我的aggredate函数的一个示例: function WorkLoadCtrl($

我希望看到网格中每个组的总数(或者通常是任何聚合函数)

这是要求的,并在问题中完成:(但不幸的是,没有任何例子)

我可以通过
aggregateTemplate
config选项重新定义默认模板。但我不知道如何适当地扩展它

这个模板在ng网格范围内进行评估,我不知道如何触发我的自定义聚合函数。我想创建与“totalChildren”类似的函数(来自)

有什么想法吗?

我找到了答案:

对于completenes,这里是我的aggredate函数的一个示例:

function WorkLoadCtrl($scope, Issue, $routeParams, HttpCache) {
  $scope.issues = Issue.jql_search({jql: $routeParams.jql});

  $scope.aggFC = function (row) {
    var res = 0;

    var calculateChildren = function(cur) {
      var res = 0;
      var remaining;
      angular.forEach(cur.children, function(a) {
        remaining = a.getProperty('fields.timetracking.remainingEstimateSeconds');
        if (remaining) { res += remaining; }
      });
      return res;
    };

    var calculateAggChildren = function(cur) {
      var res = 0;
      res += calculateChildren(cur);
      angular.forEach(cur.aggChildren, function(a) {
        res += calculateAggChildren(a);
      });
      return res;
    };

    return (calculateAggChildren(row) / 3600).toFixed(2);
  }

  $scope.mySelections = [];
  $scope.gridOptions = {
    data: 'issues.issues',
    columnDefs: [
      {field:'key', displayName:'key'},
      {field:'fields.assignee.name', displayName:'Assignee'},
      {field:'fields.status.name', displayName:'Status'},
      {field:'fields.summary', displayName:'Summary'},
      {field:'fields.timetracking.remainingEstimate', displayName:'Remaining'},
    ],
    showFooter: true,
    showGroupPanel: true,
    enablePinning: true,
    enableColumnResize: true,
    enableColumnReordering: true,
    showColumnMenu: true,
    showFilter: true,
    //jqueryUIDraggable: true, bug: when used grouping stop work, but column reordering start to work:(
    selectedItems: $scope.mySelections,
    multiSelect: false,
    aggregateTemplate: '<div ng-click="row.toggleExpand()" ng-style="rowStyle(row)" class="ngAggregate"> <span class="ngAggregateText">{{row.label CUSTOM_FILTERS}} (count: {{row.totalChildren()}} {{AggItemsLabel}} Remaining: {{aggFC(row)}})</span> <div class="{{row.aggClass()}}"></div> </div>'
  };
}
函数WorkLoadCtrl($scope,Issue,$routeParams,HttpCache){
$scope.issues=Issue.jql_搜索({jql:$routeParams.jql});
$scope.aggFC=函数(行){
var-res=0;
var calculateChildren=函数(cur){
var-res=0;
剩余var;
角度。forEach(当前子对象,函数(a){
剩余=a.getProperty('fields.timetracking.remainingEstimateSeconds');
如果(剩余){res+=剩余;}
});
返回res;
};
var CalculateAgChildren=函数(cur){
var-res=0;
res+=计算儿童(cur);
angular.forEach(cur.aggChildren,函数(a){
res+=计算出的GChildren(a);
});
返回res;
};
返回(calculateAggChildren(row)/3600.toFixed(2);
}
$scope.mys=[];
$scope.gridOptions={
数据:“问题,问题”,
columnDefs:[
{字段:'key',显示名称:'key'},
{field:'fields.assignee.name',displayName:'assignee'},
{field:'fields.status.name',displayName:'status'},
{field:'fields.summary',displayName:'summary'},
{field:'fields.timetracking.remainingEstimate',displayName:'Remaining'},
],
showFooter:是的,
showGroupPanel:正确,
启用钉扎:正确,
enableColumnResize:true,
enableColumnReordering:true,
showColumnMenu:正确,
showFilter:是的,
//JQUERYUIDRAGABLE:true,bug:使用分组时停止工作,但列重新排序开始工作:(
selectedItems:$scope.mys,
多选:错,
aggregateTemplate:{{row.label CUSTOM_FILTERS}}(计数:{{row.totalChildren()}}{{AggItemsLabel}}剩余:{{aggFC(row)}}
};
}