push một giá trị trả về từ hàm $http.get vào một mảng không được .
-
Em sử dụng http.get từ một url trả về json rồi push json này vào một biến array nhưng sau khi thoát khỏi hàm get thì biến array lại rỗng . ai chỉ cho em với ạ . em mới học về javascript cũng như là angular
myapp.controller('name',function($scope,$http){$scope.user_taggets= new Array(); var url = "http://xxxx"; $http.get(url).success(function(response){ $scope.user_taggets.push(response); }); console.log($scope.user_taggets);
});
-
Bởi vì nó chạy bất đồng bộ mà.
Khi câu lệnh console.log($scope.user_taggets) chạy thì cái $http.get chạy chưa xong nên không thấy kết quả. Nếu muốn thấy kết quả thì bạn phải để lệnh console.log trong hàm success.
-
theo script của bạn, thì khi chạy bạn sẽ thấy nó log ra $scope.user_taggets(theo như bạn nói là rỗng).
vì khi chạy từ trên xuống, gặp $http.get(url)...... nó vô, rồi nó sẽ làm bất đồng bộ(khi có kết quả nó sẽ trả về như bên trong hàm function(response){} của bạn).... xong nó xuống console.log phía của bạn lun.
-
@katanhich
Anh ơi , giải thích giúp em chỗ này với ạ . như trên em $scope.user_taggets.push(response); thì user_taggets là một mảng thì sau khi push response thì em không in được trong phần view , còn nếu em cho user_taggets là một biến rồi gán $scope.user_tagggets = response thì nó nhận được và in ra được trong view .
-
Cái đó tùy thuộc vào response chứ, nếu response là mảng thì gán lại cho user_taggets, con nếu là object thì mới push vào mảng chứ.