Get keys from Angular cacheFactory

When I list the $ cacheFactory object, it has several methods, but I do not see the actual key / value cache.

Assuming you are looking at the cache $ http, $ cacheFactory ($ http), how can you get a list of keys or, ideally, the keys and values ​​that are currently cached?

+5
source share
1 answer

Use the $cacheFactory decorator to add the getKeys method:

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <body ng-app="decorateExample"> <script> function cacheProvider($provide) { // monkey-patches $templateCache to have a keys() method $provide.decorator('$templateCache', ['$delegate', cacheDelegator]); } function cacheDelegator($delegate) { var keys = [], origPut = $delegate.put; $delegate.put = function(key, value) { origPut(key, value); keys.push(key); }; // we would need cache.peek() to get all keys from $templateCache, but this features was never // integrated into Angular: https://github.com/angular/angular.js/pull/3760 // please note: this is not feature complete, removing templates is NOT considered $delegate.getKeys = function() { return keys; }; return $delegate; } angular.module('decorateExample', []); angular.module('decorateExample').config(['$provide', cacheProvider]); </script> </body> 

References

+2
source

Source: https://habr.com/ru/post/1215004/


All Articles