本文介紹了Angular操作cookies方法,分享給大家,具體如下:
var setCookie = function(name, value) {         var Days = 30;         var exp = new Date();         exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);         document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();         //$cookies[name] = value;        };這是用Javascript寫的方法去設置
var getCookie = function(name) {  var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");  if (arr = document.cookie.match(reg))   return unescape(arr[2]);  else   return null; }這是用Javascript寫的方法去讀取 
其實angular也有相應的方法去操作cookies的,加載這兩個module的依賴文件
<script src="http://code.angularjs.org/1.2.9/angular.min.js"></script><script src="http://code.angularjs.org/1.2.9/angular-cookies.min.js"></script>
源碼是這樣的
function(a, b, c) {  "use strict";  b.module("ngCookies", ["ng"]).factory("$cookies", ["$rootScope", "$browser",   function(a, d) {    function e() {     var a, e, f, i;     for (a in h) k(g[a]) && d.cookies(a, c);     for (a in g) e = g[a], b.isString(e) ? e !== h[a] && (d.cookies(a, e), i = !0) : b.isDefined(h[a]) ? g[a] = h[a] : delete g[a];     if (i) {      i = !1, f = d.cookies();      for (a in g) g[a] !== f[a] && (k(f[a]) ? delete g[a] : g[a] = f[a], i = !0)     }    }    var f, g = {},     h = {},     i = !1,     j = b.copy,     k = b.isUndefined;    return d.addPollFn(function() {     var b = d.cookies();     f != b && (f = b, j(b, h), j(b, g), i && a.$apply())    })(), i = !0, a.$watch(e), g   }  ]).factory("$cookieStore", ["$cookies",   function(a) {    return {     get: function(c) {      var d = a[c];      return d ? b.fromJson(d) : d     },     put: function(c, d) {      a[c] = b.toJson(d)     },     remove: function(b) {      delete a[b]     }    }   }  ]) }(window, window.angular) $cookies[name] = value; 這個是angular設置cookies方法 
$cookieStore 
提供一個被session cookies支持的鍵值對(字符串-對象)存儲。被存入和取出的對象將自動通過angular的toJson/fromJson進行序列化/反序列化。 
$cookies 
提供瀏覽器cookies的讀/寫訪問操作。 
這兩個都要引入ngCookies模塊才能使用,這個模塊在1.4版本之后就有了 
從源碼中得知$cookieStore返回了三個方法get put remove 他們分別用toJson/fromJson進行序列化/反序列化
簡單的寫了幾個例子來測試下
<!DOCTYPE html><html ng-app="AutumnsWindsApp" ng-controller="aswController"> <head>  <meta charset="UTF-8">  <title></title> </head> <script src="http://code.angularjs.org/1.2.9/angular.min.js"></script> <script src="http://code.angularjs.org/1.2.9/angular-cookies.min.js"></script> <body>  {{title}} </body> <script>  var AutumnsWindsApp = angular.module('AutumnsWindsApp', ['ngCookies']);  AutumnsWindsApp.controller('aswController', function($cookies, $cookieStore, $scope) {   $cookies.name = 'autumnswind';   $scope.title = "Hello, i'm autumnswind :)";   $cookieStore.put("skill", "##");   //刪除cookies   $cookieStore.remove("name");   //設置過期日期   var time = new Date().getTime() + 5000;   $cookieStore.put("cookie", "Hello wsscat", {    expires: new Date(new Date().getTime() + 5000)   });   $cookieStore.put("objCookie", {    value: "wsscat cat cat",    age: "3",   }, {    expires: new Date(new Date().getTime() + 5000)   });   console.log($cookies);   console.log($cookies['objCookie']);  }) </script></html>            
新聞熱點
疑難解答
圖片精選