我正在尝试在 angularjs 中构建简单的服务。服务的响应在 Controller 中未定义。下面是我的代码:
服务:
yourMarketApp.factory('User',function($http){
return {
getUserCount: function(){
var count;
$http.get('/Ecomm-Java-Backend/test').success(function(result) {
console.log("Count is "+result);
console.log(result);
count =result;
return count;
})
}
}
});
Controller :
yourMarketApp.controller('homeCtrl',function($scope,User){
$scope.count =0;
var temp =User.getUserCount();
User.getUserCount().then(function(data){
$scope.count=data;
console.log("Count is From ctrl "+$scope.count);
});
});
这里console.log服务给出了期望的结果。但是,在 Controller 中,错误显示为:“TypeError:无法读取未定义的属性‘then’”。一项观察结果是代码在 var temp 行没有中断,因此服务注入(inject)得很好。
最佳答案
您需要从 getUserCount
中的 $http.get
返回 promise :
return {
getUserCount: function(){
var count;
return $http.get('/Ecomm-Java-Backend/test').success(function(result) {
console.log("Count is "+result);
console.log(result);
count =result;
return count;
});
}
}
关于javascript - Angularjs 服务 promise 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28402329/