Javascript 为什么';如果一个值重复,t AngularJS是否要列出数组项?
当我试图从数据库中列出一些东西时,我花了很长时间调试错误所在。结果表明,如果数组中存在重复的值,Angular将在ng repeat中拒绝使用该数组 可在此处找到一个示例: Javascript:Javascript 为什么';如果一个值重复,t AngularJS是否要列出数组项?,javascript,angularjs,angularjs-ng-repeat,ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,Ng Repeat,当我试图从数据库中列出一些东西时,我花了很长时间调试错误所在。结果表明,如果数组中存在重复的值,Angular将在ng repeat中拒绝使用该数组 可在此处找到一个示例: Javascript: var app = angular.module("Module", []); app.controller("Controller", function($scope){ $scope.array1 = ["1", "2", "3", "4"]; $scope.array2 = ["
var app = angular.module("Module", []);
app.controller("Controller", function($scope){
$scope.array1 = ["1", "2", "3", "4"];
$scope.array2 = ["1", "1", "3", "4"];
});
HTML:
- {{item}
- {{item}
您会注意到,在第二个数组中只有一个值重复,因此不会显示整个列表。如果您只是将第二个值更改为“2”,则将显示该值
我不希望出现这种行为,因为即使数据库中有一些重复的值,我仍然希望在前端看到它们。为什么会发生这种情况?我该如何解决 对于这种情况,您需要
按$index跟踪
文件说明:
您需要在ng repeat的末尾使用track by$index
因为您使用的是ControllerAs语法,所以您可以使用它在控制器中引用$scope,在HTML中只需确保引用了正确的数组
请参阅更新的小提琴:
[http://jsfiddle.net/jaykan24/2uyxu7ha/2/][1]
现在,您不必担心重复问题。希望这能有所帮助错误消息清楚地表明:error:[ngRepeat:dupes]中继器中不允许重复。使用“跟踪依据”表达式指定唯一关键点。Repeater:item in array2,Duplicate key:string:1
Duplicate of:您从代码中删除了重复项,因此您甚至没有解决该问题。
[http://jsfiddle.net/jaykan24/2uyxu7ha/2/][1]