服务功能未定义
问题描述:
我试着下面的代码服务功能未定义
在我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
我已注入服务。我究竟做错了什么 ?
答
您正在连接呼叫AppService.getUserData().then(function(response){
中的then
函数,这意味着您的服务应返回promise(但那不是您的情况)。
为了使您的工作代码,删除然后函数:
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" : [{}, {}]
});
}
}
}]);
这种方式,你会使用一个承诺(但在你的例子中,你不需要它,这是一个简单的回电呼叫)
只需删除此语句'this.getUserData = function(){' – itzmukeshy7
你entertai n'then'你需要'返回Promise'看到更多这里[Promise](https://docs.angularjs.org/api/ng/service/$q) – itzmukeshy7