私はgithubユーザーをランク付けする小さなアプリケーションを構築しています。私はAPIから必要なメンバーを列挙し、すべてのメンバーからURLを取得する関数を作成しました。ここに私のJSです:
var myAppModule = angular.module('myApp', [])
.controller('myctrl', ['$scope', '$http', function($scope, $http){
$http({
method: 'GET',
url: 'https://api.github.com/orgs/angular'+ '?access_token=MYTOKEN' })
.then(function(response) {
$scope.org = response.data;
}, function(error) {
displayError("Something went wrong");
});
$http({
method: 'GET',
url: 'https://api.github.com/orgs/angular/members'+ '?access_token=MYTOKEN' })
.then(function(response) {
$scope.members = response.data;
}, function(error) {
displayError("Something went wrong");
});
$http({
method: 'GET',
url: 'https://api.github.com/orgs/angular/members?page=2'+ '&access_token=MYTOKEN' })
.then(function(response) {
$scope.members2 = response.data;
}, function(error) {
displayError("Something went wrong");
});
$http({
method: 'GET',
url: 'https://api.github.com/orgs/angular/members?page=3'+'&access_token=MYTOKEN' })
.then(function(response) {
$scope.members3 = response.data;
}, function(error) {
displayError("Something went wrong");
});
$http({
method: 'GET',
url: 'https://api.github.com/users' + '?access_token=MYTOKEN' })
.then(function(response) {
$scope.user = response.data;
$scope.login = response.data["login"];
$scope.memberall = $scope.members.concat($scope.members2, $scope.members3);
for(var i = 0; i < $scope.memberall.length; i++) {
$http.get("https://api.github.com/users/" + $scope.login + '?access_token=MYTOKEN');
}
});
}]);
私はそれがすべてのURLを取得しようと、コンソールに表示することができますが、私は誰もがこの背後にある理由を知っている"https://api.github.com/users/undefined"
.Doesを取得しておきますか?このURLの中にログインを入れて、なぜ "$ scope.login"がうまくいかないのですか?
EDIT: response.dataは、ユーザーの束で、1は次のようになります。
{
"login": "mojombo",
"id": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/1?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/mojombo",
"html_url": "https://github.com/mojombo",
"followers_url": "https://api.github.com/users/mojombo/followers",
"following_url": "https://api.github.com/users/mojombo/following{/other_user}",
"gists_url": "https://api.github.com/users/mojombo/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mojombo/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mojombo/subscriptions",
"organizations_url": "https://api.github.com/users/mojombo/orgs",
"repos_url": "https://api.github.com/users/mojombo/repos",
"events_url": "https://api.github.com/users/mojombo/events{/privacy}",
"received_events_url": "https://api.github.com/users/mojombo/received_events",
"type": "User",
"site_admin": false
},
私はこのコードが必要になります。
$http({
method: 'GET',
url: 'https://api.github.com/users' + '?access_token=21174ee069d6ded5ae3d8ea78d73f15a4cb4890c' })
.then(function(response) {
$scope.user = response.data;
$scope.memberall = $scope.members.concat($scope.members2, $scope.members3);
for(var index = 0; index < $scope.memberall.length; index++) {
$http.get("https://api.github.com/users/" + $scope.memberall.login + '?access_token=21174ee069d6ded5ae3d8ea78d73f15a4cb4890c');
}
}, function(error) {
displayError("Something went wrong");
});
ユーザのログインや場所を見つけるためにそれらは各角の組織メンバーのためのURLを得るためにURLの中にある。私は答えに近いと思うが、私はまだ "https://api.github.com/users/undefined"をコンソールに取得する。
最終作業コードは次のとおり $ HTTP({ 方法: 'GET'、 URL: '?access_tokenは= mytoken' 'https://api.github.com/users' +}) .then(関数(応答){
$ scope.user = response.data; $ scope.memberall = $ scope.members.concat($ scope.members2、$ scope.members3); for(var index = 0; index < $ scope.memberall.length ; index ++){ $ http.get( "https://api.github.com/users/" + $ scope.memberall [index] .login + '?access_token = mytoken'); } }、関数(エラー){ displayError( "何か問題が発生しました"); });
'$ scope.login'はどこに定義されていますか? – Kyriakos
@Quiriacus:最後に、 '$ scope.memberall'の前に。 – joh04667
'for'ループの2行上にあります。 – summerfreeze