最近我开始学习AngularJS。我的问题如下。 我无法访问方法调用外的$ http.get()返回的数据。
代码:
(function(){
var productApp = angular.module('productApp', []);
productApp.controller('ProductController', ['$http', function($http){
var store = this;
store.products = [];
$http.get('http://localhost:8080/VeggieFresh/veggie/product/1')
.success(function(data){
store.products = data;
console.log(data);
});
console.log(store.products);
}]);
})();
当我在$ http.get()方法中打印数据时,它可以打印没有任何问题,但是当我尝试在方法外打印时;它显示空数组。
我想因为这个我也无法在HTML上访问这些数据。 在这方面的任何帮助都非常感谢。
答案 0 :(得分:1)
由于$ http success是一个异步调用,你不会在函数外部立即得到数据,你可以调用函数来获得“success”函数,或者使用回调函数
就您的代码而言,您可以在$ scope variable
上保存数据 $http.get('http://localhost:8080/VeggieFresh/veggie/product/1')
.success(function(data){
$scope.store.products = data;
//console.log(data);
});
答案 1 :(得分:0)
成功函数运行异步,因此您将获得成功函数内的结果。
答案 2 :(得分:0)
以下代码为我工作。
productApp.controller('ProductController', ['$http', function($http){
var store = this;
store.products = [];
var promise = $http.get('http://localhost:8080/VeggieFresh/veggie/product/1');
promise.success(function(data){
store.products = data;
});
}]);