Javascript 需要post/get请求的角度响应超出范围,有什么建议吗?

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请求的响应,在post/get中成功获取响应,但无法从post/get中获取结果。 当我在控制台上打印时,它显示为未定义。任何建议,这是我的代码

index.html: 角度服务:
})

这是因为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 */
  });