gpt4 book ai didi

javascript - 使用 Angular 在一维列表中对数据进行分组

转载 作者:行者123 更新时间:2023-11-30 12:35:51 26 4
gpt4 key购买 nike

我使用 Angular 和 Bootstrap 来表示数据网格并让用户对其进行一些控制(编辑数据等)。数据集是对象数组,每个对象都有一个group属性,这个属性不是唯一的,表示一条记录指的是哪个组。

所以,数据集看起来像

[
{
id: 1,
group: 'A',
value: 'John'
}, {
id: 2,
group: 'A',
value: 'Jake'
}, {
id: 3,
group: 'B',
value: 'Jack'
}
]

我要 Angular 输出

<div class="row group">
<div class="col-md-12">A</div>
</div>
<div class="row sample">
<div class="col-md-4">1</div>
<div class="col-md-8">John
<div>
...

我试过 ng-repeat 但它只允许将一个数组折叠成另一个数组,所以 {{ group }} 将是一个顶级元素并且 { { elementOfAGroup }} 将是它的 child 。我需要一个最终标记来成为一组普通的 DOM 元素。

我在谷歌上搜索了一个解决方案,但我唯一找到的是允许制作表格的简单组件(指令)。

最佳答案

我使用自定义“uniq”过滤器来完成此任务:

<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.1.1/angular-filter.js"></script>
</head>
<body ng-app="plunker" ng-controller="MainCtrl">
<div class="row group" ng-repeat="data in dataset | uniq: 'group'">
<h3>{{data.group}}</h3>
<div class="col-md-12" ng-repeat="child in dataset | filter: { group: data.group }">{{child.value}}</div>
</div>
</body>
<script>
var app = angular.module('plunker', ['angular.filter']);

app.controller('MainCtrl', ['$scope', '$sce', function($scope, $sce) {
$scope.dataset = [
{
id: 1,
group: 'A',
value: 'John'
}, {
id: 2,
group: 'A',
value: 'Jake'
}, {
id: 3,
group: 'B',
value: 'Jack'
}
];

}]);
</script>
</html>

大数据集可能会很慢。

关于javascript - 使用 Angular 在一维列表中对数据进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26118604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com