服务功能未定义

时间:2016-08-25 11:17:52

标签: javascript angularjs ionic-framework

我正在尝试以下代码

在我的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

我注入了服务。我究竟做错了什么 ?

1 个答案:

答案 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" : [{}, {}]
           });
       }
    }       
}]);
通过这种方式,您将使用承诺(但在您的示例中,您不需要它,它只是一个简单的回复电话)