2013-04-15 10 views
7

में ग्रुपिंग के साथ एकत्रीकरण कैसे सेट करें मैं ग्रिड में प्रत्येक समूह के लिए कुल (या आमतौर पर कोई समेकन फ़ंक्शन) देखना चाहता हूं।एनजी-ग्रिड

यह अनुरोध किया गया था और जारी किया गया था: https://github.com/angular-ui/ng-grid/issues/95 (लेकिन दुर्भाग्य से किसी भी उदाहरण के बिना)।

मैं aggregateTemplate कॉन्फ़िगरेशन विकल्प द्वारा डिफ़ॉल्ट टेम्पलेट https://github.com/angular-ui/ng-grid/blob/master/src/templates/aggregateTemplate.html को फिर से परिभाषित करने में सक्षम हूं। लेकिन मुझे नहीं पता कि इसे कैसे ठीक से विस्तारित किया जाए।

यह टेम्पलेट एनजी-ग्रिड स्कोप में मूल्यांकन कर रहा है और मुझे नहीं पता कि मेरे कस्टम एकत्रीकरण फ़ंक्शन को कैसे ट्रिगर करना है। मैं '' कुल चाइल्डरेन '' (https://github.com/angular-ui/ng-grid/blob/master/src/classes/aggregate.js से) के समान कार्य बनाना चाहता हूं

कोई विचार?

उत्तर

9

मैं इस सवाल का जवाब मिला:

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>' 
    }; 
} 
: https://github.com/angular-ui/ng-grid/issues/290

एक completenes यहाँ के लिए मेरी aggredate समारोह का एक उदाहरण है