我有一个具有“init”方法的服务“OneTimeService”。如何缓存角度数据?
// Within OneTimeService code
var this = self;
this.init = function() {
return $http..... function(data) {
self.data = data
}
}
里面每个我的控制器,与我的路由相关联的,我有: //在一些控制器代码 OneTimeService.init(),然后(数据){$ = scope.somevariable数据.someattribute; //做别的东西 }
我的问题是,我有10个不同的“路线”。他们每个人都有的:
// Within every controller (assuming each route I have uses a different controller) code but injects the OneTimeService.
OneTimeService.init().then(data) {
$scope.somevariable = data.someattribute;
// do other stuff
}
每次我打电话“的init()”,它执行$ HTTP请求,在现实中,我要的是能够在我的应用$ ONE TIME EVER叫它http请求,然后使用服务中的缓存变量“self.data”。我喜欢.then的原因是保证在做其他事情之前在OneTimeService中设置“self.data”。有替代品吗?
这样做的最好方法是什么?