【发布时间】:2016-01-21 11:59:57
【问题描述】:
我尝试在服务中请求一些数据。我想确保将数据保存在服务的变量中,因为由于状态更改,我的控制器将一直重新加载,并且在站点加载时我只需要一次数据。
app.service('resultDeals',['$translate','$cookies','$http',
function($translate,$cookies,$http) {
var currentOrigin = {};
var originsUser={};
return {
loadOrigins:function() {
$http.get('app/deals/deal.json').success(function(response){
console.log(response);
originsUser = response.data;
return originsUser
}).error(function(err){
console.log(err);
});
},
userOrigin:originsUser
};
}]);
我的控制器如下所示
console.log(resultDeals.loadOrigins());
$scope.updateOrigins=resultDeals.loadOrigins();
问题是resultDeals.loadOrigins() 总是未定义。
我想确保将从 loadOrigins() 获得的数据存储在服务变量中,并且仅在需要时从控制器访问它,这样当控制器重新加载时就不必再获取数据了。
我该怎么做?
【问题讨论】:
标签: angularjs asynchronous angular-promise angular-services angularjs-http