AngularJs Cookies 操做

$cookiesProvider瀏覽器

使用$cookiesProvider改變$cookies服務的默認行爲。安全

默認屬性cookie

path:字符串,cookies只在這個路徑及其子路徑可用。默認狀況下,這個將會是出如今你基礎標籤上的網址路徑。session

domain:字符串,cookies只在這個域及其子域可用。爲了安全問題,若是當前域不是需求域的或者其子域,那麼用戶代理不會接受cookies。dom

expires:字符串,日期。"Wdy, DD Mon YYYY HH:MM:SS GMT"格式的字符串或者一個日期對象表示cookies將在這個確切日期/時間過時。ide

secure:boolean,該cookies將只在安全鏈接中被提供。spa

$cookiesProvider 配置代理

  (function () {
      angular.module('Demo', [])
      .config(["$cookiesProvider",cookiesFn ])
      function cookiesFn($cookiesProvider) {
          $cookiesProvider.defaults = {
              path: yourPath,
              domain: yourDomain,
              expires: expireDate,
              secure: true/false
          };
      }
  }());

$cookiescode

提供瀏覽器cookies的讀/寫訪問操做。對象

支持1.4及以上版本。

須要引入ngCookies模塊。angular.cookies[.min].js

方法

get(key);

根據key返回該cookies值。

key:搜索cookies的id。

getObject(key);

根據key返回該cookies的反序列化值。

key:搜索cookies的id。

getAll();

返回全部cookies的鍵值對格式對象。

put(key,value,[options]);

根據給定的id設置一個cookies。

key:cookies值的id。

value:要存儲的cookies原始值。

[options]:選項對象。

putObject(key,value,[options]);

根據給定的id設置一個cookies。

key:cookies值的id。

value:要存儲的cookies原始值。

[options]:選項對象。

remove(key,[options]);

移除指定id的cookies。

key:要刪除的鍵值cookies對的id。

[options]:選項對象。

$cookieStore

提供一個被session cookies支持的鍵值對(字符串-對象)存儲。被存入和取出的對象將自動經過angular的toJson/fromJson進行序列化/反序列化。

依賴:$cookies

方法

get(key);

根據key返回cookies值(已被反序列化)。

key:搜索cookies的id。

put(key,value);

根據給定的id設置一個cookies。

key:cookies值的id。

value:要存儲的cookies值。

remove(key);

移除指定id的cookies。

key:要刪除的鍵值cookies對的id。

使用代碼:

  (function () {
      angular.module('Demo', ["ngCookies"])
      .controller('testCtrl', ["$cookies","$cookieStore","$timeout",testCtrl]);
      function testCtrl($cookies,$cookieStore,$timeout) {
          var time = new Date().getTime()+5000;
          $cookies.put("theCookie","Hello World",{expires:new Date(new Date().getTime()+5000)});
          $cookies.putObject("objCookie",{value:"Hello World"},{expires:new Date(new Date().getTime()+5000)});
          $cookieStore.put("newCookie",{value:"Hello World"});
          var getCookie = $cookies.get("theCookie");  // Hello World
          var getObjCookie = $cookies.getObject("objCookie");  // Object{ value="Hello World" }
          var getNewCookie = $cookieStore.get("newCookie");  // Hello World
          //$cookies.remove("theCookie"); // theCookie = unfefined
          //$cookies.remove("objCookie"); // objCookie = undefined
          var allCookies = $cookies.getAll(); // Object{ theCookie="Hello World", objCookie="{"value":"Hello World"}", newCookie="{"value":"Hello World"}" }
          $timeout(function(){
              var _getCookie = $cookies.get("theCookie"); // theCookie = unfefined
              var _getObjCookie = $cookies.getObject("objCookie"); // objCookie = undefined
              $cookieStore.remove("newCookie"); // newCookie = undefined
          },6000);
      }
  }());

注意 : angular 使用 cookies 須要引入angular-cookies[.min].js

使用 cookies 需謹慎,多注意路徑(path)和域(domain)的坑就基本沒什麼問題了

相關文章
相關標籤/搜索