Angular 自定义服务调用失败

Angular custom service call fails

我一直在关注 PluralSight 上的在线教程以使用 Angular,但似乎有些信息已过时。

我已经读到关于创建自定义服务的部分,并严格按照教程进行操作,但是我的自定义服务无法正常工作。

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

它的源代码在这里 http://plnkr.co/edit/8vy6ZMpUJBfEOQ3qFoKk

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

如果您只是想让它正常工作,请按以下方法修复它:

您的第二个选择是在服务上向您的 $http 添加 return,如下所示:

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

这样 return 就是 $http 的全部承诺。因为我删除了你的 "wrapper" 我也需要修改你的 onUserComplete ():

var onUserComplete = function(result) {
  $scope.user = result.data;
  github.getRepos($scope.user).then(onRepos, onError);
};

这是工作中的 plunker:http://plnkr.co/edit/8abkaU08fCzFreA5APz1?p=info