我需要合并并在一行中显示具有相同ID的特定数据。我正在使用ng-repeat来显示数据。 示例JSON:
$scope.sampleTest = [{"city": "Chennai", "name":"Sample"},
{"city": "Madurai", "name":"Test"}, {"city": "Chennai", "name":"Testing"}]
我正在使用uibaccordion对数据进行分组。
预期产出: *钦奈 样品,测试 *马杜赖 测试
我将获得动态json数据。任何人都可以帮助我。
答案 0 :(得分:1)
您可以使用过滤器
按城市名称进行分组<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>
<强>样本强>
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"}];
});
&#13;
<!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>
&#13;
答案 1 :(得分:0)
如果您定义一个函数<div ng-repeat="(key, value) in sampleTest"> ... </div>
来转换<div ng-repeat="(key, value) in merge(sampleTest)"> ... </div>
对象,则可以执行merge
而不是sampleTest
。
function merge(toMerge) {
var merged = {};
for (k in toMerge) {
if (k in merged) {
merged[k] += toMerge[k];
} else {
merged[k] = toMerge[k];
}
}
return merged;
}