Tôi gặp sự cố với ứng dụng Góc.Angular HTTP Nhận vòng lặp
Tôi có một mảng chứa mã ngắn langs ('en', 'fr', ...). Và về cơ bản, Tôi muốn Angular lặp trên mảng đó và làm cho HTTP nhận được yêu cầu trên mỗi giá trị.
for (var i in $scope.langs) {
console.log($scope.langs[i].shortName);
$http.get($scope.appURL + $scope.langs[i].shortName + '/api/products/?format=json&resto='+ $scope.restoID)
.then(function(res){
$scope.products = angular.fromJson(res.data);
window.localStorage.setItem("products-"+$scope.langs[i].shortName, JSON.stringify(res.data));
$scope.products = JSON.parse(window.localStorage.getItem("products-"+$scope.langs[i].shortName));
console.log('LANG = '+ $scope.langs[i].shortName, $scope.products);
});
}
Nhật ký đầu tiên cho thấy:
fr
en
Tuyệt vời! Các bản ghi cuối cùng được ném hai lần (tôi đã có 2 lang trong mảng của tôi), tuyệt vời quá.
Vấn đề là trong vòng lặp, nhật ký cho thấy cùng một ngôn ngữ trong cả hai trường hợp, khi tôi nên có một fr/api/... và một en/api/... Nó luôn luôn đăng nhập 2 en/api/...
Tôi không biết nếu nó rõ ràng ... Bất kỳ ý tưởng?
Dường như vấn đề không đồng bộ! – Fals
console.log (i); – shaunhusain
@Fals Không phải. Vấn đề là biến 'i' trong hàm ẩn danh bị ràng buộc tại thời điểm thực hiện hàm, không phải lúc tạo hàm, và nó sẽ luôn có giá trị khóa cuối cùng (ví dụ' $ scope.langs.length - 1') –