Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body ng-app="app">
  
<script type="text/ng-template" id="t2.html">
  <p>This is the content of the template</p>
</script>
<script type="text/ng-template" id="t1.html">
  <p>This is the content of the template</p>
</script>
<script type="text/ng-template" id="t3.html">
  <p>This is the content of the template</p>
</script>
</body>
</html>
 
var app = angular.module('app', []);
app.config(function ($provide) {
      /**
       * Store a reference to the original return value
       * of $cacheFactory(cacheId, options).
       *
       */
      var originalCacheFactory;
      $provide.decorator('$cacheFactory', function ($delegate) {
        /**
         * Setup a caches holder.
         */
        var caches = {};
        /**
         * Dont overwrite the original
         */
        if (!originalCacheFactory) {
          originalCacheFactory = $delegate.apply(null, arguments);
        }
        /**
         * Setup a new cacheFactory method.
         * Take the original return value of $delegate(cacheId, options)
         * and extend it with some overriden methods.
         *
         * `put` should also push our data into a local `data` variable.
         * `getAll()` returns the entire data pool for the given cache.
         *
         */
        function cacheFactory (cacheId, options) {
          var data = {};
          return caches[cacheId] = angular.extend($delegate.apply(null, arguments), {
            put: function (k, v) {
              /**
               * Store away the values in
               * our own `data` variable, presented by
               * .getAll.
               */
              if (!data[cacheId]) {
                data[cacheId] = {};
              }
              data[cacheId][k] = v;
              /**
               * Run the original .put method.
               */
              originalCacheFactory.put.apply(null, arguments);
            },
            getAll: function () {
              return data[cacheId];
            }
          });
        }
        /**
         * Re-implement the $cacheFactory.get(id)
         * method.
         */
        cacheFactory.get = function (id) {
          return caches[id];
        };
        /**
         * Re-implement the $cacheFactory.info()
         * method.
         */
        cacheFactory.info = function () {
          var info = {};
          forEach(caches, function(cache, cacheId) {
            info[cacheId] = cache.info();
          });
          return info;
        };
        /**
         * Return our new cacheFactory function.
         */
        return cacheFactory;
      });
    });
    /**
     * Log the contents of the $templateCache.
     */
    app.run(function ($templateCache, $timeout) {
      $timeout(function () {
        console.log($templateCache.getAll());
      });
    });  
Output 300px

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers