我试图从网址中检索一些JSON,但我无处可去。这是我试图建立的小型足球应用程序(可能是供个人使用),主要是为了更好地使用Angular 1(在使用Angular 2之前)。
http://api.football-data.org/code_samples
正如您所看到的,我没有使用Angular JS示例,我正在密切尝试复制javascript示例。
http://api.football-data.org/v1/competitions/424
这是我试图通过ngResource方式显示的数据。我遵循了Udemy Tutorial,如果可能的话,我希望有人以这种方式做一个例子。附: API KEY是免费的(http://api.football-data.org/client/register)!只是电子邮件,你将立即回来!
如果有人可以帮我这个。我非常感激。
由于
HTML
<!DOCTYPE html>
<html lang="en-gb" ng-app="quickEleven">
<head>
<title>AngularJS Football Stats</title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta charset="UTF-8">
<!-- load bootstrap and fontawesome via CDN -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
<style>
html, body, input, select, textarea
{
font-size: 1.05em !important;
}
</style>
<!-- load angular via CDN -->
<script src="//code.angularjs.org/1.3.0-rc.2/angular.min.js"></script>
<script src="//code.angularjs.org/1.3.0-rc.2/angular-route.min.js"></script>
<script src="//code.angularjs.org/1.3.0-rc.2/angular-resource.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<header>
<nav class="navbar navbar-default">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/">AngularJS Football</a>
</div>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><i class="fa fa-home"></i> Home</a></li>
</ul>
</div>
</nav>
</header>
<div class="container">
<div ng-controller="homeController"></div>
</div>
</body>
</html>
JS
// MODULE
var quickEleven = angular.module('quickEleven', ['ngRoute', 'ngResource']);
// CONTROLLERS
quickEleven.controller('homeController', ['$scope', '$resource', 'cityService', function($scope, $resource, cityService) {
$scope.footballAPI =
$resource("http://api.football-data.org/v1/competitions/424", {headers: {"X-Auth-Token": "<API TOKEN KEY>"}}, { get: { method: "JSONP"}
});
$scope.fussball = $scope.footballAPI.get({});
console.log($scope.fussball);
}]);
答案 0 :(得分:1)
花点时间阅读$resource,你做了一些错误,比如设置标题。
<强> USAGE:强>
$ resource(url,[paramDefaults],[actions],options);paramDefaults:url参数的默认值。
因此,使用您定义的资源,令牌不会转到标题但作为参数,API将返回404.您应该为每个方法设置标题:
并且您不需要使用jsonp,get
将起作用
例如:
$resource("http://api.football-data.org/v1/competitions/:competitionId", {}, {
get: {
method: "GET",
headers: {
"X-Auth-Token": "<API TOKEN KEY>"
}
}
});
调用方法:
&#34;类&#34;没有正文的动作:Resource.action([参数], [成功],[错误])&#34; class&#34;与身体的行动: Resource.action([parameters],postData,[success],[error])
因此,为竞争ID 424调用get
是:
$scope.footballAPI.get({
competitionId: 424
}, function(data) {
$scope.fussball = data;
}, function(err) {
console.log('error:', err);
});