2017-08-14 89 views
2

我該如何處理jsonp響應?我試圖搜索,但我無法解決它。下面的屏幕截圖顯示了一個jsonp結果。 1 我得到使用此代碼JSONP響應,services.js在Angular JS中處理JSONP響應1.6

var app=angular.module('F1FeederApp.services', []); 
 
app.config(function($sceDelegateProvider) { 
 
\t $sceDelegateProvider.resourceUrlWhitelist([ 
 
    'self', 
 
    'http://ergast.com/**' 
 
    ]); 
 
}); 
 
app.factory('ergastAPIservice', function($http) { 
 

 
    var ergastAPI = {}; 
 
    var urlFiltered = 'http://ergast.com/api/f1/current/driverStandings.json'; 
 
    ergastAPI.getDrivers = function() { 
 
     return $http({ 
 
     method: 'JSONP', 
 
     url: urlFiltered 
 
     }); 
 
    } 
 
    
 
    return ergastAPI; 
 
    });

現在,我用它下面的代碼,給我造成一號圖片訪問。

angular.module('F1FeederApp.controllers', []). 
 
    controller('driversController', function($scope, ergastAPIservice) { 
 
    $scope.nameFilter = null; 
 
    $scope.driversList = []; 
 

 
    // //ergastAPIservice.getDrivers() ->> when i try this i get error this is not a function. 
 
    //ergastAPIservice.getDrivers().success(function (response) { 
 
     //Dig into the responde to get the relevant data 
 
    // $scope.driversList = response.MRData.StandingsTable.StandingsLists[0].DriverStandings; 
 
    //}); 
 
    //code above doesnt work so i tried to access it or atleast show a value like 
 
    // the code below 
 
    console.log(ergastAPIservice.getDrivers()); 
 
    console.log(ergastAPIservice.getDrivers().MRData.StandingsTable.StandingsLists[0].DriverStandings); 
 
    });

現在我使用的console.log(JSONP響應)獲得的第一個畫面。 我該如何獲得該響應中的驅動程序列表? like:collectionVar = response.getDrivers();. 任何鏈接或相同的問題鏈接將有助於感謝!

+0

發佈您的代碼,而不是發佈圖片 –

+0

是它現在沒事的傢伙?謝謝 –

回答

1

做這樣的事情。這應該工作。你正在得到一個承諾。承諾如下處理。瞭解更多關於promise

app.controller("testController", function($scope,testService){ 
     testService.getDrivers() 
      .then(function (response) { 
       $scope.standingTable = response.data.MRData.StandingsTable.StandingsLists[0].DriverStandings; 
       // handle valid reponse 

      }, 
      function(error) { 
       //handel error 
      }); 


    } 
+0

有人投了這個答案只是想知道爲什麼:/ –

0

大感謝諾曼!我不知道我最初得到了一個角度承諾響應。雖然我想獲得司機的名單。所以我使用這個代碼。

$scope.driversList = response.data.MRData.StandingsTable.StandingsLists[0].DriverStandings;