详解Angular操作cookies方法
本文介绍了Angular操作cookies方法,分享给大家,具体如下:
varsetCookie=function(name,value){ varDays=30; varexp=newDate(); exp.setTime(exp.getTime()+Days*24*60*60*1000); document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString(); //$cookies[name]=value; };
这是用Javascript写的方法去设置
vargetCookie=function(name){ vararr,reg=newRegExp("(^|)"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)) returnunescape(arr[2]); else returnnull; }
这是用Javascript写的方法去读取
其实angular也有相应的方法去操作cookies的,加载这两个module的依赖文件
源码是这样的
function(a,b,c){ "usestrict"; b.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser", function(a,d){ functione(){ vara,e,f,i; for(ainh)k(g[a])&&d.cookies(a,c); for(aing)e=g[a],b.isString(e)?e!==h[a]&&(d.cookies(a,e),i=!0):b.isDefined(h[a])?g[a]=h[a]:deleteg[a]; if(i){ i=!1,f=d.cookies(); for(aing)g[a]!==f[a]&&(k(f[a])?deleteg[a]:g[a]=f[a],i=!0) } } varf,g={}, h={}, i=!1, j=b.copy, k=b.isUndefined; returnd.addPollFn(function(){ varb=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){ vard=a[c]; returnd?b.fromJson(d):d }, put:function(c,d){ a[c]=b.toJson(d) }, remove:function(b){ deletea[b] } } } ]) }(window,window.angular)
$cookies[name]=value;这个是angular设置cookies方法
$cookieStore
提供一个被sessioncookies支持的键值对(字符串-对象)存储。被存入和取出的对象将自动通过angular的toJson/fromJson进行序列化/反序列化。
$cookies
提供浏览器cookies的读/写访问操作。
这两个都要引入ngCookies模块才能使用,这个模块在1.4版本之后就有了
从源码中得知$cookieStore返回了三个方法getputremove他们分别用toJson/fromJson进行序列化/反序列化
简单的写了几个例子来测试下
{{title}}