如果你只想让它工作,这里是如何修复它:
您的第二个选择是$http
在服务上添加退货,如下所示:
var getUser = function(username) {
return $http.get("https://api.github.com/users/" + username)
.then(function(response) {
return response.data;
});
};
请注意,您只忘记了 $http 之前的第一个“return”。其余的运行良好
解决该问题的更好方法是不在服务中解决您的承诺。通过这种方式,您可以获得精简服务,并且可以在控制器中随心所欲地管理数据。
所以我将您的 getUser 更改为:
var getUser = function(username) {
return $http.get("https://api.github.com/users/" + username);
};
这样它会从$http
. 由于我删除了您的“包装器”,因此我也需要修改您的onUserComplete ()
:
var onUserComplete = function(result) {
$scope.user = result.data;
github.getRepos($scope.user).then(onRepos, onError);
};
这是工作的 plunker:http ://plnkr.co/edit/8abkaU08fCzFreA5APz1?p=info