【发布时间】:2017-12-03 05:04:42
【问题描述】:
我有一个返回员工数据的简单函数。但是获取 then 不是函数错误如何从函数中检索响应
function getdata(criteria) {
return angularService.GetData(criteria, $scope.year, $scope.selectedYearType.name);
}
在下面的函数中调用
$scope.GetEmployeeData = function (criteria) {
$scope.searchMethod = getdata;
$scope.searchMethod().then(function (response) {----------> Error here
var totalEmployeeAmount = 0;
for (var i = 0; i < response.data.results.length; i++) {
var summaryData = response.data.results[i];
totalEmployeeAmount += (summaryData.totalEmployeeAmount);
}
return response
}, function (response) {
// This is to see if has any error
//console.log(response);
});
}
我的角度服务
function getData(criteria, year, yearType) {
var url = apiService.ApiUrl + "/Employees/EmployeeHistory/GetData/" + year + "/" + yearType;
return apiService.DeferredPost(url, criteria);}
延迟发布方法
function deferredPost(url, params) {
var deferred = $q.defer();
$http.post(url, params)
.then(function (data) {
deferred.resolve(data);
}, function (resp) {
deferred.reject(resp);
}).catch(function (data) {
deferred.reject(data);
});
return deferred.promise;
}
API
var api = {
DeferredPost: deferredPost
};
return api;
【问题讨论】:
-
显示
angularService.GetData方法 -
假设
angularService.GetData(...args)返回Promise。您应该使用$scope.searchMethod.then(function ... )而不是$scope.searchMethod().then(function ... ) -
你能发布你的角度服务的完整代码吗?
标签: angularjs