无法访问 Angular JS 工厂中的 $http 响应数据
Unable to access $http response data in Angular JS factory
我正在尝试将 $http
响应数据保存在 angularJS 工厂内的一个变量中。但是我无法访问 http 方法之外的响应。它正在显示 undefined
。我检查了这个 link 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};
}]);
因为$http服务是异步的。你应该这样做:
angular.module('myapp')
.factory('CardNumberFactory',['$http', function ($http) {
var details={};
function getData() {
return $http.get('scripts/services/mock.json')
.then(function(response){
return {details: response.data}
});
}
return {
getData: getData
}
}]);
angular.module('myapp').controller('TestController, function($scope,CardNumberFactory) {
CardNumberFactory.getData().then(function(res) {
// res is the {details} object
})
})
我正在尝试将 $http
响应数据保存在 angularJS 工厂内的一个变量中。但是我无法访问 http 方法之外的响应。它正在显示 undefined
。我检查了这个 link 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};
}]);
因为$http服务是异步的。你应该这样做:
angular.module('myapp')
.factory('CardNumberFactory',['$http', function ($http) {
var details={};
function getData() {
return $http.get('scripts/services/mock.json')
.then(function(response){
return {details: response.data}
});
}
return {
getData: getData
}
}]);
angular.module('myapp').controller('TestController, function($scope,CardNumberFactory) {
CardNumberFactory.getData().then(function(res) {
// res is the {details} object
})
})