2015-02-09 36 views
0

我想在angularjs中构建简单的服务。控制器中的服务响应未定义。下面是我的代码:Angularjs服务Promice错误

服务:

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; 
      }) 


     } 
    } 

}); 

控制器:

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被给予期望的结果。但是,在控制器中,错误显示为:“TypeError:无法读取属性”,然后“未定义”。一种观察是代码不会在var temp行中断,所以服务被很好地注入。

回答

1

您需要从$http.getgetUserCount返回承诺:

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; 
     }); 
    } 
} 
+0

工作就像魅力。谢谢:) – user3440629 2015-02-09 03:32:56

+0

不用担心。请接受我的回答 – 2015-02-09 03:35:39