我正在尝试使用angular.js创建一个工厂,y从github api获得这个json结构:
[
{
"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
}]
我想从url属性中获取包含用户信息的数据,并且想法是从所有用户那里获取数据。
这是我工厂到目前为止的代码:
angular
.module('app')
.factory('userFactory', function($http){
function getData(){
return $http.get('https://api.github.com/users');
}
function userData(){
getData().success(function(data){
return $http.get('https://api.github.com/users'+ data.url)
}).error()
}
return{
getData : getData
}
});
这是控制器:
angular
.module('app')
.controller('listUserController', function($scope, userFactory){
$scope.users;
userFactory.getData().success(function(data){
$scope.users = data;
}).error(function(error){
console.log(error);
})
});
但是我可以得到数据,请你帮忙.......
答案 0 :(得分:0)
Angular将api响应封装在对象中,尝试
userFactory.getData().success(function(response){ // response instead of data
$scope.users = response.data; // response.data instead of data
}).error(function(error){
console.log(error);
})
答案 1 :(得分:0)
您可以尝试使用plnkr here。
它确实:
$resource(user.url)
要求个人用户提供其数据
result.push(userData)
按下结果并返回控制器
userFactory.userData().then(function(data){
vm.userData = data;
});
我们在这里使用$ resource,因为我们希望保留对结果数组中数据的引用。然后在响应来自服务器后,我们的结果数组将反映更改并显示在视图中。