我正在尝试获取 post/get 请求的响应,在 post/get 中成功获取响应,但无法从 post/get 中获取结果。 当我在控制台上打印时,它显示“未定义”。任何建议,这是我的代码
index.html:
<div ng-app="myApp" ng-controller="customersCtrl">{{ponies}}</div>
Angular 代码:
var myApp = angular.module('myApp', []);
Angular 服务:
myApp.factory('ponyService', function($http) {
var getPonies = function() {
return $http.get('https://www.w3schools.com/angular/customers.php');
};
return {
getPonies: getPonies
};
});
myApp.controller('customersCtrl', function($scope, ponyService) {
ponyService.getPonies().success(function(data) {
$scope.ponies = data;
});
console.log($scope.ponies); // here want to print data because want to use whole controller
});
最佳答案
这是因为发布和获取是异步的。
您的 console.log
不会等待响应。
将您的控制台放入成功中以便检查其数据。
尝试这样
ponyService.getPonies().success(function(data) {
$scope.ponies = data;
console.log($scope.ponies);
});
或者您可以观察它的变化(但不建议仅用于测试目的),
像这样
ponyService.getPonies().success(function(data) {
$scope.ponies = data;
});
$scope.$watch("ponies",function(val){
if(val)
console.log(val)
})
关于javascript - 需要超出范围的 post/get 请求的 Angular 响应,有什么建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42664811/