我正在尝试以下代码
在我的services.js中,其中一项服务是
.service('AppService', ['$http', 'AuthService', function ($http, AuthService) {
var getUserData = function(){
return {
"fname": "Admin",
"lname": "ladmin",
"array" : [{}, {}]
}
}
return {
getUserData: getUserData
}
}]);
在我的控制器中,我有
AppService.getUserData().then(function(response){
console.log(response);
}, function(err){
console.log(err);
})
错误:AppService.getUserData(...).then is not a function
我注入了服务。我究竟做错了什么 ?
答案 0 :(得分:3)
您正在联接通话then
中的AppService.getUserData().then(function(response){
功能,这意味着您的服务应该返回promise(但这不是您的情况)。
要使代码正常工作,请删除then函数:
var data = AppService.getUserData(); //no promise used, your actual situation.
如果您想使用承诺,请保持控制器功能不变并修改您的服务:
.service('AppService', ['$http', 'AuthService', '$q', function ($http, AuthService, $q) {
getUserData : function(){
return $q(function(resolve, reject) {
resolve({
"fname": "Admin",
"lname": "ladmin",
"array" : [{}, {}]
});
}
}
}]);
通过这种方式,您将使用承诺(但在您的示例中,您不需要它,它只是一个简单的回复电话)