编程语言
首页 > 编程语言> > javascript – 如果值重复,为什么AngularJS不想列出数组项?

javascript – 如果值重复,为什么AngularJS不想列出数组项?

作者:互联网

当我试图从数据库中列出一些东西时,我花了很长时间来调试故障的位置.事实证明,如果数组中的值是重复的,Angular将拒绝在ng-repeat中使用该数组.

其中一个例子可以在这里找到:http://jsfiddle.net/2uyxu7ha/

使用Javascript:

var app = angular.module("Module", []);
app.controller("Controller", function($scope){
    $scope.array1 = ["1", "2", "3", "4"];
    $scope.array2 = ["1", "1", "3", "4"];
});

HTML:

<div ng-app="Module">
    <div ng-controller="Controller as ctrl">
        <ul>
            <li ng-repeat="item in array1">{{item}}</li>
        </ul>
        <ul>
            <li ng-repeat="item in array2">{{item}}</li>
        </ul>
    </div>
</div>

正如您将注意到的,在第二个数组中只有一个值重复,因此不显示整个列表.如果只是将第二个值更改为“2”,则会显示.

我不想要这种行为,因为即使数据库中有一些重复值,我仍然希望在前端看到它们.为什么会发生这种情况,我该如何解决?

解决方法:

对于这种情况,您需要按$index跟踪

http://jsfiddle.net/2uyxu7ha/1/

来自docs的解释:

https://docs.angularjs.org/error/ngRepeat/dupes

标签:javascript,angularjs,ng-repeat,angularjs-ng-repeat
来源: https://codeday.me/bug/20190609/1205999.html