在 Angular JS 1.6 中处理 JSONP 响应
Handling JSONP response in Angular JS 1.6
我如何处理 jsonp 响应?我试图搜索,但无法解决。下面的屏幕截图显示了一个 jsonp 结果。1
我使用这段代码得到了 jsonp 响应,services.js
var app=angular.module('F1FeederApp.services', []);
app.config(function($sceDelegateProvider) {
$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 响应) 获得了第一张图片。
我如何获得该响应中的驱动程序列表?,
像:collectionVar = response.getDrivers();。
任何 link 或相同问题 link 都会有所帮助,谢谢!
做这样的事情。这应该工作。你得到了一个承诺。 Promise 的处理方式如下。详细了解 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
});
}
非常感谢诺曼!我一开始并不知道我收到了 angular promise 回复。虽然我想获得 driver 常设名单。所以我使用这个代码。
$scope.driversList = response.data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
我如何处理 jsonp 响应?我试图搜索,但无法解决。下面的屏幕截图显示了一个 jsonp 结果。1 我使用这段代码得到了 jsonp 响应,services.js
var app=angular.module('F1FeederApp.services', []);
app.config(function($sceDelegateProvider) {
$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 响应) 获得了第一张图片。 我如何获得该响应中的驱动程序列表?, 像:collectionVar = response.getDrivers();。 任何 link 或相同问题 link 都会有所帮助,谢谢!
做这样的事情。这应该工作。你得到了一个承诺。 Promise 的处理方式如下。详细了解 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
});
}
非常感谢诺曼!我一开始并不知道我收到了 angular promise 回复。虽然我想获得 driver 常设名单。所以我使用这个代码。
$scope.driversList = response.data.MRData.StandingsTable.StandingsLists[0].DriverStandings;