$cacheFactory

標(biāo)簽: AngularJS API 中文


  • ng模塊中的服務(wù)
    以工廠模式構(gòu)造cache對(duì)象,并且使它們可以被訪問(wèn)。

javascript

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");

// 創(chuàng)建時(shí)我們沒(méi)有指定配置項(xiàng)
expect(cache.info()).toEqual({id: 'cacheId', size: 2});


用法

$cacheFactory(cacheId, [配置項(xiàng)]);

參數(shù) 形式 具體
cacheId string 新緩存的名稱或ID。
配置項(xiàng) (選填) object 配置對(duì)象會(huì)指定緩存的行為。 性能:

{number=} 容量 — 將緩存轉(zhuǎn)化成LRU緩存。

返回

--- ---
object 新創(chuàng)建的緩存對(duì)象有以下的配置方法:

- {object} info() — 返回 id, 大小, 和緩存的配置。

- {{*}} put({string} key, {*} value) — 向緩存中插入以個(gè)新的鍵值對(duì)并將它返回。

- {{*}} get({string} key) — 返回與key對(duì)應(yīng)的value值,如果未命中則返回undefined。

- {void} remove({string} key) — 從緩存中刪除一個(gè)鍵值對(duì)

- {void} removeAll() — 刪除所有緩存中的數(shù)據(jù)

- {void} destroy() — 刪除從$cacheFactory引用的這個(gè)緩存.

方法

info(); 獲取所有被創(chuàng)建的緩存的信息

返回

Object 返回一個(gè)關(guān)于cacheId的鍵值

get(cacheId); 如果與cacheId相對(duì)應(yīng)的緩存對(duì)象被創(chuàng)建,則獲取它

參數(shù)

參數(shù) 形式 具體
cacheId string 一個(gè)可以通過(guò)的緩存名字或ID

返回

Returns
Object - 通過(guò) cacheId 確認(rèn)的緩存對(duì)象,或是確認(rèn)失敗的 undefined


例子

html

<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>

javascript

angular.module('cacheExampleApp', []).
controller('CacheController', ['$scope', '$cacheFactory', function($scope, $cacheFactory) {
  $scope.keys = [];
  $scope.cache = $cacheFactory('cacheId');
  $scope.put = function(key, value) {
    if ($scope.cache.get(key) === undefined) {
      $scope.keys.push(key);
    }
    $scope.cache.put(key, value === undefined ? null : value);
  };
}]);

css

p {
  margin: 10px 0 3px;
}

本文由作者原創(chuàng),翻譯內(nèi)容仍有欠佳之處,請(qǐng)大家多多指正。via 村里有個(gè)村長(zhǎng) / @西瓜橘子葡萄冰

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 面試題一:https://github.com/jimuyouyou/node-interview-questio...
    R_X閱讀 1,779評(píng)論 0 5
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,884評(píng)論 0 3
  • 前端開(kāi)發(fā)面試題 面試題目: 根據(jù)你的等級(jí)和職位的變化,入門級(jí)到專家級(jí),廣度和深度都會(huì)有所增加。 題目類型: 理論知...
    怡寶丶閱讀 2,696評(píng)論 0 7
  • 本文旨在加深對(duì)前端知識(shí)點(diǎn)的理解,資料來(lái)源于網(wǎng)絡(luò),由本人(博客:http://segmentfault.com/u/...
    風(fēng)起云帆閱讀 361評(píng)論 0 0
  • 本文旨在加深對(duì)前端知識(shí)點(diǎn)的理解,資料來(lái)源于網(wǎng)絡(luò),由本人(博客:http://segmentfault.com/u/...
    AuthorJim閱讀 467評(píng)論 0 0

友情鏈接更多精彩內(nèi)容