javascript - 需要超出范围的 post/get 请求的 Angular 响应,有什么建议吗?

标签 javascript angularjs

我正在尝试获取 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/

相关文章:

javascript - MEAN.js 和 MEAN.io 的区别

javascript - POST 服务器返回状态代码 : 415 Unsupported Media Type (Preflight request)

javascript - 如何防止传单加载 map 区域之外的图 block ?

javascript - Highcharts map 未呈现,没有错误

javascript - 如何使用 React 在浏览器中渲染应用程序预览

javascript - 无论如何要在 Chrome 中请求更高的 localStorage 限制而不进行扩展(从 Javascript 或由用户手动从 Chrome UI 中)?

javascript - Angular - 条件包装 block

javascript - AngularJS 输入类型数字在输入字母时不会更新模型

javascript - 使用 AngularJS 按字母顺序对用户输入进行排序

c# - 如何在下拉列表中添加 "ng-model"?