Javascript 自定义服务调用失败
我一直在关注PluralSight的在线教程,了解如何使用Angular,但其中一些信息似乎已经过时 我已经到了创建定制服务的部分,并且完全遵循了教程,但是我的定制服务将无法正常工作 当我尝试调用我的github服务时,它似乎失败了,它似乎无法正确地返回到script.jsJavascript 自定义服务调用失败,javascript,angularjs,plunker,Javascript,Angularjs,Plunker,我一直在关注PluralSight的在线教程,了解如何使用Angular,但其中一些信息似乎已经过时 我已经到了创建定制服务的部分,并且完全遵循了教程,但是我的定制服务将无法正常工作 当我尝试调用我的github服务时,它似乎失败了,它似乎无法正确地返回到script.js.then()handler forgithub.getUser() 它的砰砰声就在这里 有人能告诉我这里缺少什么吗?如果您只是想让它工作,下面是如何修复它: 您的第二个选项是向服务上的$http添加一个返回,如下所示: va
.then()
handler forgithub.getUser()
它的砰砰声就在这里
有人能告诉我这里缺少什么吗?如果您只是想让它工作,下面是如何修复它: 您的第二个选项是向服务上的
$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);
};
这是一个有效的工具:ahhh在丢失的返回物上捡拾得非常好,我现在可以使用了:)谢谢你的帮助!