2013-08-26 3 views
3

세 개의 다른 컴퓨터 (컴퓨터 열에 표시된대로)의 메트릭 (이름, 값)을 표시하는 세 개의 열 (이름, 값, 컴퓨터)이있는 ng 그리드가 있습니다. 각 측정 항목에 대해 세 줄을 표시하는 대신 gridOptions에 groups: ['name']을 설정했습니다. 그러나, 나는 집계 행이 값의 합계를 표시하는 방법을 알아낼 수 없습니다. 각 그룹의 행 값에 액세스하여 합계를 계산하는 방법이 있습니까?집계 행의 ng-grid 합계

이것은 내가보고 싶은 것입니다 (7, 10, 값 열에서 집계 행에 4, 6) : 당신의 도움에 대한

NAME   VALUE  MACHINE 
v metric1 (3) 7 
    metric1  3   comp-a 
    metric1  2   comp-b 
    metric1  2   comp-c 
> metric2 (3) 10 
> metric3 (3) 4 
v metric4 (3) 6 
    metric4  5   comp-a 
    metric4  0   comp-b 
    metric5  1   comp-c 

감사합니다!

+0

나는 이것이 사용하는 그리드 버전에 크게 의존한다고 생각합니다. 이 같은 문제에 대한 몇 가지 해결책을 온라인에서 찾았지만 그리드의 기능과 내부 데이터 모델이 발견 된 저널과 현재 버전 사이에서 변경되었으므로 아래에서 현재 솔루션을 게시하겠습니다. 그러나 그리드 코드를 통해 파고들 수 있습니다. 비트를 사용하여 버전에서 템플릿을 찾은 다음 거기에서 조정/검사하십시오. – shaunhusain

+0

ng-grid 2.0.5 버전을 사용 중입니다. – Kabb5

+0

정직하게도이 시점에서 현재 어느 버전인지 알 수 없다는 것을 깨달았습니다. 타임 스탬프를 가지고 있습니다 ... 내가 한 것을 게시 할 것입니다. 아무리 해도. – shaunhusain

답변

4

나는이 동일한 문제에 부딪쳤다. 나는 발견 한 제안 된 해결책을 시도했지만 내가 가지고있는 그리드 버전으로는 작업하지 않았다. 표 소스를 검색하고 내 집계 행에 사용하는 템플릿을 찾은 다음 복사하여 표시 방법 부분에서 함수의 호출을 포함하도록 수정했습니다.

내 gridOptions에서 아래에 표시된 속성을 정의합니다 그리드에 대한 컨트롤러의 범위에

aggregateTemplate: "<div ng-click=\"row.toggleExpand()\" ng-style=\"rowStyle(row)\" class=\"ngAggregate\">" + 
    " <span class=\"ngAggregateText\"><span class='ngAggregateTextLeading'>{{row.totalChildren()}} {{row.label CUSTOM_FILTERS}} {{entryMaybePlural(row)}}</span><span>Total Weight: {{aggFunc(row)}} lbs {{AggItemsLabel}}</span></span>" + 
    " <div class=\"{{row.aggClass()}}\"></div>" + 
    "</div>" + 
    "" 

그때, 당신은 두 경우 모두에서 볼 수

$scope.aggFunc = function (row) { 
    var total = 0; 
    angular.forEach(row.children, function(cropEntry) { 
     total+=cropEntry.entity.weight; 
    }); 
    return total.toString(); 
    }; 
    $scope.entryMaybePlural = function (row) { 
    if(row.children.length>1) 
    { 
     return "entries"; 
    } 
    else 
     return "entry"; 
    }; 

기능 내가 컨트롤러 범위에 함수에 템플릿에 행을 통과해야 나는 아이들이라는 재산을 보았다. n 행 (다른 시도가 효과가 없을 때 Chrome 디버깅 도구를 사용하여 이것을 알아 냈습니다.)

PS 내 그리드는이 컴파일 주석을 상단에 있지만 버전은 없습니다.

/*********************************************** 
* ng-grid JavaScript Library 
* Authors: https://github.com/angular-ui/ng-grid/blob/master/README.md 
* License: MIT (http://www.opensource.org/licenses/mit-license.php) 
* Compiled At: 06/03/2013 21:19 
***********************************************/