[英]AngularJS: assign $http.get data to variable
我尝试将$ http.get中的数据分配给我的控制器中的变量。
$http.get(URL).success(function (data) {
$scope.results = data;
console.log('results in $http.get :'+ $scope.results);
});
console.log('results after http.get'+ $scope.results);
第一个控制台日志打印数据来自get。 在$ http.get(url).success $ scope.results打印为undefined之后。
这是因为$http.get
是异步的。 因此,在ajax请求完成之前,您的代码不会被搁置,而是执行其余代码。 所以你的第二个console.log
将在ajax请求完成之前执行。 此时,没有名为$scope.results
范围变量,它仅在请求完成后定义,这就是它打印undefined
的原因。 您的第一个console.log
将仅在$http
ajax成功完成后打印,此时您有$scope.results
,它被分配给来自后端的data
。
$http
是一个asynchronous
函数。 它立即返回,但它返回的promise
不是真实的结果。 请求完成onsuccess
将调用onsuccess
。
第二个(调用之外的) console.log
在$http
返回之前执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.