【发布时间】:2015-04-29 01:40:45
【问题描述】:
我正在尝试将$http 响应数据保存在 angularJS 工厂内的变量中。但我无法访问 http 方法之外的响应。它显示undefined。我检查了这个链接Injecting $scope into an angular service function() 请让我知道如何处理这个问题。
以下是工厂代码:
angular.module('myapp')
.factory('CardNumberFactory',['$http', function ($http) {
// Service logic
var details={};
$http.get('scripts/services/mock.json')
.then(function(responce){
var resopnceData = responce.data;
details=resopnceData;
});
console.log(details);
return {details:details};
}]);
【问题讨论】:
-
在您记录变量时,它仍然是
undefined。它只在.then内部定义,一段时间后异步发生。 -
return $http.get(..)改为 - 这将返回一个承诺 - 并在控制器中.then它并将返回值分配给您的$scope
标签: angularjs angularjs-scope angularjs-service