Javascript 需要post/get请求的角度响应超出范围,有什么建议吗?
我正在尝试获取post/get请求的响应,在post/get中成功获取响应,但无法从post/get中获取结果。 当我在控制台上打印时,它显示为未定义。任何建议,这是我的代码 index.html: 角度服务:Javascript 需要post/get请求的角度响应超出范围,有什么建议吗?,javascript,angularjs,Javascript,Angularjs,我正在尝试获取post/get请求的响应,在post/get中成功获取响应,但无法从post/get中获取结果。 当我在控制台上打印时,它显示为未定义。任何建议,这是我的代码 index.html: 角度服务: }) 这是因为POST和GET是异步的 您的console.log不会等待响应 将您的控制台放入success中,以检查其数据 像这样试试 ponyService.getPonies().success(function(data) { $scope.ponies = data;
}) 这是因为POST和GET是异步的 您的console.log不会等待响应 将您的控制台放入success中,以检查其数据 像这样试试
ponyService.getPonies().success(function(data) {
$scope.ponies = data;
console.log($scope.ponies);
});
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)
})
这是因为$http返回一个promise异步请求,所以如果您这样做
ponyService.getPonies().success(function(data) {
$scope.ponies = data;
console.log($scope.ponies);
});
ponyService.getPonies().success(function(data) {
$scope.ponies = data;
});
console.log($scope.ponies);
它将记录未定义的日志,因为您试图在请求完成之前记录它。因此,您需要在需要访问已解析数据的任何代码中链接到该承诺。例如:
ponyService.getPonies().success(function(data) {
$scope.ponies = data;
console.log($scope.ponies);
/* access data or $scope.ponies in here */
});
或者你可以用承诺,比如
ponyService.getPonies().then(function (data) {
$scope.ponies = data;
console.log($scope.ponies);
/* access data or $scope.data in here */
});
在数据存在之前,将始终对.success之外的语句进行评估您是否可以详细说明为什么希望$scope.ponies在那里可用,以及它如何允许您使用整个控制器?我们可能会提供一种带有一些额外细节的替代方法。要将结果值分配给一个变量,我该怎么办?因为要使用所有变量使用您的代码的控制器,这里当加载页在获取数据之后变得未定义时,是否有可能在@Anik第一时间克服未定义的问题
ponyService.getPonies().then(function (data) {
$scope.ponies = data;
console.log($scope.ponies);
/* access data or $scope.data in here */
});