angular1.4及以上版本才支持$cookies。

  项目引入的是1.4.2版本,操作cookies原先一直用的是$cookieStore,用的飞起啊。

  $cookieStore.remove("user");
//检测是否存在cookie user
$scope.pass = $cookieStore.get("pass"); //记录登录时间
$scope.loginTime = new Date().getTime();
$cookieStore.put("loginTime", $scope.loginTime);
var cookieDate = {};
cookieDate.sid = data.con.sid;
cookieDate.uid = data.con.uid;
cookieDate.tid = data.con.tid;
cookieDate.token = data.con.token;
cookieDate.email = data.con.email;
$cookieStore.put("user", cookieDate);
if ($scope.isRemember) {
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() + 30);//设置cookie保存30天
$cookieStore.put("pass", {'email':$scope.email, 'password':$scope.password}, {'expires': expireDate});
} else {
$cookieStore.remove("pass");
}

  后来发现了一个严重的问题。在群里发现有人问问题,用的1.2版本的angular-cookie,$cookieStore设置保存时间没用。我一想,这怎么可能,嗤之以鼻。后来那人多次询问,我就把我的代码贴给他看了。也没什么,我就闭群看文章了。中途打野,想试试cookie怎么弄,毕竟自己也没弄多大明白,就换了个不常用的浏览器试了试。握草,cookie的设置根本没用啊!!于是查阅了些资料,好像cookieStore不支持保存的时间期限。

  

$cookies.putObject(key,value,[options]);
$cookieStore.put(key,value);

  这就是差别!于是瞬间全部换成$cookies写法。而且人老外也说了,以后会逐步摒弃$cookieStore,而更多使用$cookies。

 $cookies.remove("user");
//检测是否存在cookie user
$scope.pass = $cookies.getObject("pass"); //记录登录时间
$scope.loginTime = new Date().getTime();
$cookies.put("loginTime", $scope.loginTime);
var cookieDate = {};
cookieDate.sid = data.con.sid;
cookieDate.uid = data.con.uid;
cookieDate.tid = data.con.tid;
cookieDate.token = data.con.token;
cookieDate.email = data.con.email;
$cookies.putObject("user", cookieDate);
if ($scope.isRemember) {
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() + 30);//设置cookie保存30天
$cookies.putObject("pass", {'email': $scope.email, 'password': $scope.password}, {'expires': expireDate});
} else {
$cookies.remove("pass");
}

  在其他控制器获取cookie内容也很简单:

 $scope.ID = $cookies.getObject("user").email;
$scope.sid = $cookies.getObject("user").sid;
$scope.uid = $cookies.getObject("user").uid;
$scope.token = $cookies.getObject("user").token;

  另外有的浏览器有自动填充账号密码功能(导致我以为我的cookie设置好了),可以在设置里面查看cookie是否保存成功。

angular中的$cookies和$cookieStore设置过期时间的更多相关文章

  1. angular中的cookies与cookieStore区别

    设置cookie用put()方法: $cookies.put(key, value[, options]); $cookieStore.put(key, value); 例如设置一个cookie,名为 ...

  2. 如何为Redis中list中的项设置过期时间

    问题 两种解决方法 有序集合 多个集合以及TTL Redis是一个伟大的工具,用来在内存中存储列表是很合适的. 不过,如果你想要快速搜索列表,同时需要让列表中每项都在一定时间后过期,应该怎么做呢? 首 ...

  3. redis中的key设置过期时间

    EXPIRE key seconds 为给定  key  设置生存时间,当  key  过期时(生存时间为  0  ),它会被自动删除. 在 Redis 中,带有生存时间的  key  被称为『易失的 ...

  4. 查询redis中没有设置过期时间的key

    #!/bin/sh ## 该脚本用来查询redis集群中,哪些key是没有设置过期时间,对应只需要修改redis的其中一个实例的 host和port ## 脚本会自动识别出该集群的所有实例,并查出对应 ...

  5. python中使用redis模块, 设置过期时间

    # 链接数据库self.handle = redis.Redis(host=host, port=port, db=db, password=password, decode_responses=Tr ...

  6. redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据

    在使用redis时,有时回存在大量数据的时候,而且分类相同,ID相同 可以使用hset来设置,这样有一个大类和一个小分类和一个value组成 但是hset不能设置过期时间 过期时间只能在set上设置 ...

  7. java操作Redis缓存设置过期时间

    关于Redis的概念和应用本文就不再详解了,说一下怎么在java应用中设置过期时间. 在应用中我们会需要使用redis设置过期时间,比如单点登录中我们需要随机生成一个token作为key,将用户的信息 ...

  8. redis批量设置过期时间

    Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作.代码如下: redis-cli keys &qu ...

  9. redis文档翻译_key设置过期时间

    Available since 1.0.0.    使用開始版本号1.01 Time complexity: O(1)  时间复杂度O(1) 出处:http://blog.csdn.net/colum ...

随机推荐

  1. [学习笔记] CDQ分治&整体二分

    突然诈尸.png 这两个东西好像都是离线骗分大法... 不过其实这两个东西并不是一样的... 虽然代码长得比较像 CDQ分治 基本思想 其实CDQ分治的基本思想挺简单的... 大概思路就是长这样的: ...

  2. Github的commit规范

    参考链接:GIT写出好的 commit message 基本要求 第一行应该少于50个字. 随后是一个空行 第一行题目也可以写成:Fix issue #8976 永远不在 git commit 上增加 ...

  3. [POI2006]TET-Tetris 3D

    题目 二维线段树板子题啊 但是惊讶的发现我不会打标记 毕竟内层是线段树不能\(pushup\)也不能\(pushdown\) 于是考虑一下标记永久化 其实非常显然\(mx_i\)表示区间最大值,\(t ...

  4. [Python 多线程] Concurrent (十五)

    concurrent包只有一个模块: concurrent.futures - 启动并行任务 异步并行任务编程模块,提供一个高级的异步可执行的便利接口. futures模块提供了2个池执行器 Thre ...

  5. LVS (Linux Virtual Server) 思维导图笔记

  6. pymongo的安装和使用

    1.安装 MongoDB的python接口pymongo的安装方法有多种,如源码.easy_install.pip都可以.采用pip安装,很简单. pip install pymongo 安装完成后可 ...

  7. HDU 1069 Monkey and Banana(转换成LIS,做法很值得学习)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 Monkey and Banana Time Limit: 2000/1000 MS (Java ...

  8. keepalived 的进程/usr/sbin/keepalived -D 只有2个

    操作系统:openSUSE 11.3 (x86_64) /usr/sbin/keepalived -D  只有2条 日志:ls  /var/log/messages* -lrth Can't init ...

  9. SaltStack 自动化工具

    1.服务端安装master: # yum -y install salt-master # yum -y install salt-minion 2.客户端安装minion: # yum -y ins ...

  10. Mysql-数据的完整性约束

    一 .介绍 二 .not null与default 三 .unique 四 .primary key 五 .auto_increment 六 .foreign key 一 .介绍 约束条件与数据类型的 ...