我一直在线上关于PluralSight的教程,以便与Angular合作,但似乎有些信息已经过时了。
我已经到了关于创建自定义服务的部分,并且已按照教程使用了该字母,但我的自定义服务无法正常运行。
当我尝试调用我的github服务时似乎失败了,看起来承诺无法正确返回到.then()
的script.js github.getUser()
处理程序
它的内容是http://plnkr.co/edit/8vy6ZMpUJBfEOQ3qFoKk
有人可以告诉我这里缺少什么吗?
答案 0 :(得分:2)
如果你想让它发挥作用,以下是如何解决它:
您的第二个选择是在服务上添加$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);
};