本文介绍了Angular操作cookies方法,分享给大家,具体如下:
rush:js;">
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写的方法去设置
rush:js;">
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的依赖文件
rush:js;">
源码是这样的
rush:js;">
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),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进行序列化/反序列化
简单的写了几个例子来测试下
rush:xhtml;">
<Meta charset="UTF-8">
{{title}}