您可以
$cacheFactory从工厂构造函数中注入并获取缓存对象(例如:),
$cacheFactory.get('$http')并用于removeAll()清理所有缓存。
destroy()如果要完全删除高速缓存对象,请使用。
为了获得所有cacheObject
id,可以使用
$cacheFactory.info()它将返回每个缓存对象的摘要信息的对象
{id:'cacheObjId',size:'cacheSize'}。例:-
angular.forEach($cacheFactory.info(), function(ob, key) { $cacheFactory.get(key).removeAll();});您可以将
removeAll/
destroyAll函数添加到cacheFactory,以便通过装饰
$cacheFactory,可以在其他任何地方使用它,类似这样。
.config(['$provide', function($provide) { $provide.decorator('$cacheFactory', function($delegate) { $delegate.removeAll = function() { angular.forEach($delegate.info(), function(ob, key) { $delegate.get(key).removeAll(); }); } $delegate.destroyAll = function() { angular.forEach($delegate.info(), function(ob, key) { $delegate.get(key).destroy(); }); } return $delegate; }); } ])angular.module('App', []) .config(['$provide', function($provide) { $provide.decorator('$cacheFactory', function($delegate) { $delegate.removeAll = function() { angular.forEach($delegate.info(), function(ob, key) { $delegate.get(key).removeAll(); }); } $delegate.destroyAll = function() { angular.forEach($delegate.info(), function(ob, key) { $delegate.get(key).destroy(); }); } return $delegate; }); } ]) .run(function($cacheFactory) { var value = 123; $cacheFactory('cache1').put('test', value); $cacheFactory('cache2').put('test', value); console.log($cacheFactory.info()); $cacheFactory.removeAll(); console.log($cacheFactory.info()); });<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script><div ng-app="App"></div>


