微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

详解Angular操作cookies方法

本文介绍了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}}

其实平时我们这样就可以把自己需要的cookies设置进去

rush:js;"> $cookies.name = 'autumnswind';

但是当我们要设置一个有效时间的时候我们就用这样的方法把它设置进去

rush:js;"> var time = new Date().getTime() + 5000; $cookieStore.put("cookie",{ expires: new Date(new Date().getTime() + 5000) });

我们还可以进行删除等操作

rush:js;"> $cookieStore.remove("name");

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

原文地址:https://www.jb51.cc/js/32055.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐