角度自定义服务调用失败

时间:2015-07-09 00:18:10

标签: javascript angularjs plunker

我一直在线上关于PluralSight的教程,以便与Angular合作,但似乎有些信息已经过时了。

我已经到了关于创建自定义服务的部分,并且已按照教程使用了该字母,但我的自定义服务无法正常运行。

当我尝试调用我的github服务时似乎失败了,看起来承诺无法正确返回到.then()的script.js github.getUser()处理程序

它的内容是http://plnkr.co/edit/8vy6ZMpUJBfEOQ3qFoKk

有人可以告诉我这里缺少什么吗?

1 个答案:

答案 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);
};

以下是工作人员:http://plnkr.co/edit/8abkaU08fCzFreA5APz1?p=info