2016-01-27 148 views
0

我想獲取Web服務API,但我無法顯示 什麼,我是新的angularjs請幫助我。 我已經複製了我正在使用的控制器和工廠代碼。調用Web服務api

控制器

app.controller('myController', ['$scope', 'fetchService', function($scope, fetchService){ 
    $scope.countries = fetchService.get(); 
}]); 

服務

var app = angular.module('app',[]); 
app.factory('fetchService', ['$http', function($http){ 
    return{ 
     get: function(){ 
      return $http.get('api/data4.json').success(function(response){ 
       return response.data; 
      }); 
     } 
    } 
}]); 

回答

0

的問題是,fetchService.get()是異步的(一個承諾由$http返回),所以你必須使用一個.then()像這樣:

app.controller('myController', ['$scope', 'fetchService', function($scope, fetchService){ 
    fetchService.get() 
     .then(function(response) { 
      $scope.countries = response; 
     }); 
}]);