Angular $ scope对象显示$ scope.data但是当我尝试使用它时,表示未定义

时间:2016-09-15 10:15:41

标签: javascript angularjs

我有这个控制器从服务中获取信息。

当我将数据返回给控制器时,我使用$ scope来让视图拥有数据。

我有一些console.logs和then函数内的那些工作正常。但是在外面,记录的$ scope对象有一个.data但是当我尝试console.log时,它会以空对象的形式返回。

我的代码中有什么错误吗?

(function() {

  angular
    .module("eplApp")
    .controller("tableCtrl", TableController);

  TableController.$inject = ['httpService', "$scope"];

  function TableController(service, $scope) {
    var apiTableUrl = "http://api.football-data.org/v1/soccerseasons/426/leagueTable";
    $scope.data = {};

    service.getListFromUrl(apiTableUrl).then(function(data) {
      $scope.data = data;
      console.log($scope);
      console.log($scope.data);
    });
    console.log($scope);
    console.log($scope.data);
  }
})();

1 个答案:

答案 0 :(得分:1)

Angular是异步的,这就是为什么你可以在服务响应之外进行控制的原因

尝试以这种方式打印数据..

function TableController(service, $scope) {
  $scope.data = {};

  service.getListFromUrl(apiTableUrl).then(function(data) {
    $scope.data = data;
    printData();
  });

  function printData() {
    console.log($scope.data);
  }
}