为此,我用angular-cache和使用angular-cache.min.js
。
更多信息:
我注射'angular-cache'
服务为我的模块。
然后,将我的AngularJS服务注入'CacheFactory'
。此外,我需要'$q'
作出响应对象。
然后:
function angularCacheSampleService($http, $q, cacheFactory, adminApiRoot) {
var self = this;
self.cacheList = cacheFactory('urlResponseCache', { maxAge: 300000, deleteOnExpire: 'aggressive' });
self.angularCacheSampleCompleteCode = function (dataSource) {
var deferred = $q.defer();
//read from cache
var responseList = self.cacheList.get(dataSource);
if (angular.isUndefined(responseList)) {
//not found in cache
self.apiResponse = $http({
method: 'GET',
cache: false,
url: dataSource
});
self.apiResponse
.then(function (response) {
self.cacheList.put(dataSource, response);
deferred.resolve(self.apiResponse);
}, function (response) {
deferred.reject(response);
});
} else {
//found in cache
deferred.resolve(responseList);
}
return deferred.promise;
};
注意:如果你让你的方法内部缓存('urlResponseCache'
在此代码),你将有运行时错误,因为缓存已经建成之前,因此该功能之前定义。
你有试过吗? –
你是什么意思=在服务中缓存? – xAqweRx
如果我缓存服务,即使刷新页面,数据也会保存。但它不是我所需要的。我想使用缓存数据,直到用户在SPA中处于当前状态。我不知道是否清楚。 – Elnaz