【问题标题】:Ng-repeat an object with repeated value without duplicating it on the output without using filter and external dependenciesNg-重复具有重复值的对象而不在输出上复制它而不使用过滤器和外部依赖项
【发布时间】:2026-01-07 19:35:01
【问题描述】:

我有这些专栏:

Column
   1     
   1         
   2   

我想要的结果是重复的“1”不会在 ng-repeat 中重复。这是插图:

Column  
   1      
   2   

有没有办法检查一个值是否重复,它不会包含在 ng-repeat 的迭代中?

到目前为止,这是我的工作小提琴:

<div ng-app="myApp" ng-controller="myCtrl">
    <table>
        <tbody>
            <tr ng-repeat="item in obj">
                <td> {{ item.col1 }} </td>
            </tr>
        </tbody>
    </table>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function ($scope) {
        $scope.obj = [{ col1: 1}, { col1: 1}, { col1: 2}];
    });
</script>

编辑:我只想知道除了使用过滤器之外是否还有其他方法?由于在重复的问题中,所有关于使用过滤器的答案都讨论了。

【问题讨论】:

标签: javascript angularjs json angularjs-ng-repeat


【解决方案1】:

您似乎只需要获取唯一值。在 ng-repeat 中使用独特的过滤器有一个快速的解决方案。

AngularJS 默认不包含唯一的过滤器。您可以使用角度过滤器中的一个。只需包含 JavaScript。

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.5.8/angular-filter.min.js"></script>

并在您的应用中包含依赖项,

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

然后在 ng-repeat 中添加| unique: 过滤器。

【讨论】: