为什么我的角度服务没有返回任何结果

时间:2016-03-15 14:39:37

标签: angularjs

我的angular.js服务没有返回任何结果,我无法弄清楚原因。我没有收到任何错误,当检查控制台时,我看不到正在调用服务器脚本?

这是我的控制器功能:

$scope.getLeads = function() {
            var promise = 
            LeadsSrv.all();
            promise.then(
            function(d) { 
                $scope.leads = d.data;
                console.log(d);
            },
            function(e) {
                $log.error('failure loading leads', e);
            });
        };
        console.log($scope.leads);

正在调用的服务是:

LeadApp.factory('LeadsSrv', function($http) {
    return {
        all: function () {
            $http({
                url: '../Data.php',
                method: "POST",
                params: { req_id: 'leads_list', user_id: 1 }
            }).then(function (response) {
                return response;
            });
        }
    }
});

2 个答案:

答案 0 :(得分:1)

您的all()方法未返回任何内容。从then()内部返回不会返回外部函数。您需要返回$http承诺本身

尝试

LeadApp.factory('LeadsSrv', function($http) {
    return {
        all: function () {
          // return `$http` promise
          return  $http({
                url: '../Data.php',
                method: "POST",
                params: { req_id: 'leads_list', user_id: 1 }
            }).then(function (response) {
                return response;
            });
        }
    }
});

答案 1 :(得分:0)

LeadApp.factory('LeadsSrv', function($http) {
    return {
        all: function () {
            return $http({
                url: '../Data.php',
                method: "POST",
                params: { req_id: 'leads_list', user_id: 1 }
            });
        }
    }
});

尝试进行上述更改,希望能够正常工作