我比较数组变量:$scope.object.id
并$scope.groepen.id
用一个for循环之后的if语句.如果$scope.object.id
与其中一个ID完全相同$scope.groepen.id
,那么它应该使该索引为$scope.overlap
true.
我正在使用另一个,如果检查是否有任何事情$scope.overlap
是真的.如果一个元素$scope.overlap
是真的,它将成为$scope.bestaand
现实.否则它应该是假的.
for (var i = 0; i < $scope.groepen.length; i++) { if ($scope.object.id === $scope.groepen[i].id) { $scope.overlap[i] = true; if ($scope.overlap[i]) { $scope.bestaand = true; } else { $scope.bestaand = false; } } else { $scope.overlap[i] = false; } }
我的控制台日志显示我$scope.overlap
确实显示了正确的值(因此,如果没有相同的内容,则所有索引都为false).$scope.bestaand
如果某些东西是相同的,它会变为真,但它不会变回假.
我正在使用Angular表单验证来显示检查是否正常工作:
Deze groepsnaam bestaat al!
我在这做错了什么?
编辑:
我已经改变了我的if语句的位置.更新后的代码如下:
for (var i = 0; i < $scope.groepen.length; i++) { if ($scope.object.id === $scope.groepen[i].id) { $scope.overlap[i] = true; } else { $scope.overlap[i] = false; } if ($scope.overlap[i]) { $scope.bestaand = true; console.log("works") } else { $scope.bestaand = false; console.log("doesnt work") } }
控制台日志向我显示:
它似乎确实成了现实,但它被覆盖(我输入的值与数组的第二个值相同).如果我输入的值与数组的最后一个值相同,则确实有效.