Angular JS服务错误

时间:2016-06-01 13:54:41

标签: angularjs

我正在尝试调用AngularJS服务中的函数。以下是代码 - EmployeeService.js:

/// <reference path="script.js" />
app.factory('fetchEmpService', function ($scope, $http) {

    var fetchEmp= function()
    {
        var empList;
        $http.get("EmpWebService.asmx/GetEmp")
            .then(function (response) {
              empList = response.data;
                //return response.data;
                //$scope.employees = response.data;
            });
        return empList;
    }

    return {
        fetchEmp:fetchEmp,

    };

});

我调用服务的主脚本文件是 -

  $scope.employees = fetchEmpService.fetchEmp();

它没有给出任何错误,但没有结果,似乎它返回空白。当我通过浏览器检查器调试时,我发现Web服务响应具有Object形式的数据。那么为什么它不会来。 另一个问题是,我们不能在AngularJS服务工厂注入$ scope吗?

1 个答案:

答案 0 :(得分:0)

您无法从then函数外部返回emplist。 then函数是异步的,直到http调用完成后才会填充emplist。

你可能想要做更多这样的事情:

app.factory('fetchEmpService', function ($scope, $http) {
  var service = this       

   service.fetchEmp: function() {
        var empList;
        return $http.get("EmpWebService.asmx/GetEmp")
            .then(function (response) {
                 empList = response.data;
                 return empList;
             });

   }

   return service

});

然后在您的调用代码中执行以下操作:

 fetchEmpService.fetchEmp.then( function(emplList) {
     // access the list here. 
 }