我正在尝试调用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吗?
答案 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.
}