【发布时间】:2017-06-24 18:05:28
【问题描述】:
我认为标题很好地总结了我想要实现的目标。我查看了有关该问题的不同 SO 线程,有些使用 $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 我发现如果我在控制器/工厂内使用整个调用,则数据被获取。但是在这里,无论我做什么,我都会在 $scope 中得到未定义的结果。对我来说最好的结果是将工厂的响应数据返回到 $scope,这样所有的 $http 调用都将包含在我的工厂中。
【问题讨论】: