Angular中ngCookies模块介绍
1.Cookie介绍
主要因为HTTP协议无状态性,服务器需要知道用户在之前的页面做了哪些操作,所欲引入Cookie,是一种解决HTTP协议无状态的一种方式。 服务器可以设置或读取Cookies中包含的信息,用来维护用户和服务器会话中的状态。 2.Cookie应用场景
基于jQuery的jQuery.cookie.js是很多开发者用于项目中操作Cookie的库。 Angular中为了用户方便和简洁的操作Cookie,提供了ngCookies模块。这个模块下面提供2种服务,分别是:
3.Angular中的$cookies服务$cookies类似jQuery.cookie.js,提供了Angular操作Cookie的方法,普通情况下,JavaScript是不同向Cookie写入对象的,但是Angular提供向Cookie写入对象的方法。 $cookies提供一下方法:
getAll()以key-value对象形式返回所有的cookie put(key,value,[options])写入一个key-value的cookie putObject(key,[options])序列化设置一个key-value的Cookie remove(key,[options])移除对应key的cookie demo如下: angular.module('cookiesExample',['ngCookies']) .controller('ExampleController',['$cookies',function($cookies){ //Retrievingacookie varfavoriteCookie=$cookies.get('myFavorite'); //Settingacookie $cookies.put('myFavorite','oatmeal');}]); 比如设置cookie的写入目录,或者过期时间。我们可以用到的$cookiesProvider里面的default配置信息。 https://docs.angularjs.org/api/ngCookies/provider/$cookiesProvider#defaults页面可以查看$cookieProvider里面可以配置的信息。比如用户登录,记住密码的cookie有效期是7天。代码如下: varexpireDate=newDate();expireDate.setDate(expireDate.getDate()+7);varuser={username:encryptionStr("admin"),password:encryptionStr('123456')}$cookies.putObject('user',user,{'expires':expireDate}); encryptionStr()是自定义的加密字符串方法。 4.Angular中的$cookieStore服务$cookieStore 服务是基于后端的Session Cookies,所以不能写入的时候不能使用 varexpireDate=newDate(); expireDate.setDate(expireDate.getDate()+7);varuser={ username:encryptionStr("admin"),password:encryptionStr('123456') } $cookieStore.putObject('user',255);">写这篇博客的时候,Angular官网已经提示,$cookieStore已经过时,推荐使用$cookies服务。 |