0

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

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

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

它的 plunk 在这里http://plnkr.co/edit/8vy6ZMpUJBfEOQ3qFoKk

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

4

1 回答 1

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

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

于 2015-07-09T00:28:05.380 回答