Bir değişken ile bir diziyi karşılaştırıyorum: $scope.object.id
ve $scope.groepen.id
bir for döngüsü kullanıldıktan sonra bir if ifadesiyle. $scope.object.id
tam olarak $scope.groepen.id
kimliklerinden biri ile aynıysa, $scope.overlap
dizinini doğru yapmalıdır.Diziden döngü yapmak için doğru sonucu döndürmez
$scope.overlap
öğesinin doğru olup olmadığını kontrol etmek için kullanıyorum. $scope.overlap
öğesinin bir öğesi true olursa, $scope.bestaand
değerini true yapar. Else bunu yanlış yapmalı.
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;
}
}
Benim konsol günlüğü $scope.overlap
aslında doğru değerleri gösterir bana gösteriyor (hiçbir şey aynıdır eğer öyleyse, bütün endeksler yanlıştır). Bir şey aynıysa, $scope.bestaand
dönüşür, ancak yanlış değerine dönüşmez.
ben onay çalışıp çalışmadığını göstermek için Açısal form doğrulama kullanarak veya burada gösterilen ediyorum: Yanlış Burada ne işim
<div class="col-md-3" ng-class="{ 'has-error' : bestaand }">
<label class="control-label" for="textinput">Groepsnaam</label>
<input id="groepen" name="groepen" type="text" class="form-control input-md" ng-model="object.id" ng-minlength="4" ng-maxlength="16" ng-change="checkOverlap()" required>
<p ng-show="bestaand" class="help-block">Deze groepsnaam bestaat al!</p>
</div>
?
Düzenleme:
benim eğer tabloların yerini değiştirdi. Ben aynı olan bir değer girişi var (
O gerçek haline gelmez gibi görünüyor, ama bunun üzerine alır:
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")
}
}
konsol günlüğü bu bana gösteriyor: Güncelleme kod Burada gösterilen dizinin ikinci değeri olarak). Dizinin LAST değeriyle aynı olan bir değer girersem, çalışır.
nedeni
bastaan = false
ayarlamayın, o zaman zaten ooverlap = true
set doğrudur neden $ scope.bestaand' muhtemelen endeksinde bir dizi olmalıdır 'çünkü '$ scope.overlap' her bir eşleşecek döngü – Tomaltach