Angularjs -$ http呼叫工厂内部将在控制器$范围内返回



我认为标题很漂亮,总结了我想要实现的目标。我看不同的是有关问题的线程,有些则使用$ 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/');

这里需要返回,以便呼叫者可以参考结果。

最新更新