详解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}}