Improve this Doc  View Source

$cacheFactory

  1. - service in module ng

Factory that constructs Cache objects and gives access to them.

var cache = $cacheFactory('cacheId');
expect($cacheFactory.get('cacheId')).toBe(cache);
expect($cacheFactory.get('noSuchCacheId')).not.toBeDefined();

cache.put("key", "value");
cache.put("another key", "another value");

// We've specified no options on creation
expect(cache.info()).toEqual({id: 'cacheId', size: 2});

Usage

$cacheFactory(cacheId, [options]);

Arguments

Param Type Details
cacheId string

Name or id of the newly created cache.

options
(optional)
object

Options object that specifies the cache behavior. Properties:

  • {number=} capacity — turns the cache into LRU cache.

Returns

object

Newly created cache object with the following set of methods:

  • {object} info() — Returns id, size, and options of cache.
  • {{*}} put({string} key, {*} value) — Puts a new key-value pair into the cache and returns it.
  • {{*}} get({string} key) — Returns cached value for key or undefined for cache miss.
  • {void} remove({string} key) — Removes a key-value pair from the cache.
  • {void} removeAll() — Removes all cached values.
  • {void} destroy() — Removes references to this cache from $cacheFactory.

Methods

  • info();

    Get information about all the caches that have been created

    Returns

    Object
    • key-value map of cacheId to the result of calling cache#info
  • get(cacheId);

    Get access to a cache object by the cacheId used when it was created.

    Parameters

    Param Type Details
    cacheId string

    Name or id of a cache to access.

    Returns

    object

    Cache object identified by the cacheId or undefined if no such cache.

Example

<div ng-controller="CacheController">
  <input ng-model="newCacheKey" placeholder="Key">
  <input ng-model="newCacheValue" placeholder="Value">
  <button ng-click="put(newCacheKey, newCacheValue)">Cache</button>

  <p ng-if="keys.length">Cached Values</p>
  <div ng-repeat="key in keys">
    <span ng-bind="key"></span>
    <span>: </span>
    <b ng-bind="cache.get(key)"></b>
  </div>

  <p>Cache Info</p>
  <div ng-repeat="(key, value) in cache.info()">
    <span ng-bind="key"></span>
    <span>: </span>
    <b ng-bind="value"></b>
  </div>
</div>