当我尝试从数据库中列出某些内容时,我花了很长时间来调试故障所在。原来,如果数组中有重复的值,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”,它就会被显示出来。
我不希望出现这种情况,因为即使数据库中有一些重复的值,我仍然希望在前端看到它们。为什么会出现这种情况,我该如何解决?
Error: [ngRepeat:dupes] 重复项不允许在重复器中出现。使用“track by”表达式指定唯一键。重复器:item in array2,重复键:string:1
- Mark