In meinem Winkel Anwendung habe ich ein Stück Code wie folgtAngularJS - For-Schleife falsch sogar erhöht wird, wenn nur ein Element im Array ist
for (var i = 0; i < $scope.itemList.length; i++) {
if ($scope.itemList[i].serialNumber == quickCode) {
console.log(i)
returnsService.getNoReceiptErrorMessages($scope.itemList[i].sku, quickCode).then(function (response) {
console.log(i)
}
}
}
Es ist nur ein for loop
und in Seite der Schleife gibt es ein winkliger Dienst, um Backend-API aufzurufen. Das Array hat nur ein Element. Der Wert von i
wird also immer 0
sein. Aber die console.log(i)
vor dem Serviceanruf Drucken 0
und nach Service-Aufruf druckt 1
. Kann jemand darauf hinweisen, was hier passiert?
Ich glaube, das für Schleifen der Art js zurückzuführen ist, und Scoping . https://jsfiddle.net/8ncqeoeq/ veranschaulicht, dass ich 1 nach der Schleife sein werde; Ich glaube, dass der Callback auf den Zustand von i, wie es läuft, verweisen wird, die 1 ist, anstatt das i, das übergeben wird. Ich werde versuchen, dies zu einer richtigen Antwort zu formulieren – OliverRadini