我认为标题很漂亮,总结了我想要实现的目标。我看不同的是有关问题的线程,有些则使用$ Q,而另一些则不使用。所以我试图拉一些简单的东西:
.factory('db',['$http',function($http){
return{
get:function(){
$http.get('https://randomuser.me/api/');
}
}
}])
.controller('PanelCtrl', [
'$scope',
'db',
function($scope, db){
db.get().then(function(response){
$scope.player=response.data;
});
使用Console.log我发现,如果我在控制器/工厂内使用整个调用,则获取数据。但是无论我做什么,在这里,我都会在$范围中获得不确定的结果。对我来说,最好的结果是将响应的数据从工厂返回到$范围,因此所有$ http调用都将包括在我的工厂中。
更改
$http.get('https://randomuser.me/api/');
to
return $http.get('https://randomuser.me/api/');
这里需要返回,以便呼叫者可以参考结果。