2017-02-04 8 views
0

동일한 ID를 가진 특정 데이터에 대해 병합하여 한 행에 표시해야합니다. 데이터를 표시하기 위해 ng-repeat를 사용하고 있습니다. 샘플 JSON : 나는 데이터를 그룹화 uibaccordion을 사용하고ng-repeat를 사용하여 단일 행에 여러 행을 병합하고 표시

$scope.sampleTest = [{"city": "Chennai", "name":"Sample"}, 
       {"city": "Madurai", "name":"Test"}, {"city": "Chennai", "name":"Testing"}] 

.

예상 출력 : * 첸나이 샘플, 테스트 * 내가 동적 JSON 데이터를 얻을 수 있습니다 마두 라이 테스트

. 누구든지이 일에서 나를 도울 수 있습니까? 당신은 필터를 도시 이름으로 그룹을 사용 할 수

+0

kamla 답변을 확인 했습니까? – Sajeetharan

답변

0

,

<body ng-controller="myCtrl"> 
    <div ng-repeat="(key, value) in sampleTest | groupBy: '[city]'"> 
    <div ng-repeat="player in value"> 
     {{key}} {{ player.name }} 
    </div> 
    </div> 
</body> 

DEMO

var app = angular.module('sampleApp', ['angular.filter']); 
 

 
    
 
     
 
app.controller('myCtrl', function($scope) { 
 
    $scope.sampleTest = [{"city": "Chennai", "name":"Sample"}, 
 
    {"city": "Madurai", "name":"Test"}, {"city": "Chennai", "name":"Testing"}]; 
 
});
<!DOCTYPE html> 
 
<html ng-app="sampleApp" xmlns="http://www.w3.org/1999/xhtml"> 
 

 
<head> 
 
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.10/angular.min.js"></script> 
 
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-filter/0.4.7/angular-filter.js"></script> 
 
    <script src="app.js"></script> 
 
</head> 
 
<body ng-controller="myCtrl"> 
 
    <div ng-repeat="(key, value) in sampleTest | groupBy: '[city]'"> 
 
    <div ng-repeat="player in value"> 
 
     {{key}} {{ player.name }} 
 
    </div> 
 
    </div> 
 
</body> 
 

 
</html>

0

대신 <div ng-repeat="(key, value) in sampleTest"> ... </div>을하고 당신이 함수를 정의하면, 당신은 <div ng-repeat="(key, value) in merge(sampleTest)"> ... </div>을 수행 할 수 있습니다 mergesampleTest 개체.

function merge(toMerge) { 
    var merged = {}; 
    for (k in toMerge) { 
    if (k in merged) { 
     merged[k] += toMerge[k]; 
    } else { 
     merged[k] = toMerge[k]; 
    } 
    } 
    return merged; 
}