• Angular Cookies 操作


    $cookiesProvider

    使用$cookiesProvider改变$cookies服务的默认行为。

    默认属性

    path:字符串,cookies只在这个路径及其子路径可用。默认情况下,这个将会是出现在你基础标签上的网址路径。

    domain:字符串,cookies只在这个域及其子域可用。为了安全问题,如果当前域不是需求域的或者其子域,那么用户代理不会接受cookies。

    expires:字符串,日期。"Wdy, DD Mon YYYY HH:MM:SS GMT"格式的字符串或者一个日期对象表示cookies将在这个确切日期/时间过期。

    secure:boolean,该cookies将只在安全连接中被提供。

    $cookiesProvider 配置

    复制代码
      (function () {
          angular.module('Demo', [])
          .config(["$cookiesProvider",cookiesFn ])
          function cookiesFn($cookiesProvider) {
              $cookiesProvider.defaults = {
                  path: yourPath,
                  domain: yourDomain,
                  expires: expireDate,
                  secure: true/false
              };
          }
      }());
    复制代码

    $cookies

    提供浏览器cookies的读/写访问操作。

    支持1.4及以上版本。

    需要引入ngCookies模块。angular.cookies[.min].js

    方法

    get(key);

    根据key返回该cookies值。

    key:搜索cookies的id。

    getObject(key);

    根据key返回该cookies的反序列化值。

    key:搜索cookies的id。

    getAll();

    返回所有cookies的键值对格式对象。

    put(key,value,[options]);

    根据给定的id设置一个cookies。

    key:cookies值的id。

    value:要存储的cookies原始值。

    [options]:选项对象。

    putObject(key,value,[options]);

    根据给定的id设置一个cookies。

    key:cookies值的id。

    value:要存储的cookies原始值。

    [options]:选项对象。

    remove(key,[options]);

    移除指定id的cookies。

    key:要删除的键值cookies对的id。

    [options]:选项对象。

    $cookieStore

    提供一个被session cookies支持的键值对(字符串-对象)存储。被存入和取出的对象将自动通过angular的toJson/fromJson进行序列化/反序列化。

    依赖:$cookies

    方法

    get(key);

    根据key返回cookies值(已被反序列化)。

    key:搜索cookies的id。

    put(key,value);

    根据给定的id设置一个cookies。

    key:cookies值的id。

    value:要存储的cookies值。

    remove(key);

    移除指定id的cookies。

    key:要删除的键值cookies对的id。

    使用代码:

    复制代码
      (function () {
          angular.module('Demo', ["ngCookies"])
          .controller('testCtrl', ["$cookies","$cookieStore","$timeout",testCtrl]);
          function testCtrl($cookies,$cookieStore,$timeout) {
              var time = new Date().getTime()+5000;
              $cookies.put("theCookie","Hello World",{expires:new Date(new Date().getTime()+5000)});
              $cookies.putObject("objCookie",{value:"Hello World"},{expires:new Date(new Date().getTime()+5000)});
              $cookieStore.put("newCookie",{value:"Hello World"});
              var getCookie = $cookies.get("theCookie");  // Hello World
              var getObjCookie = $cookies.getObject("objCookie");  // Object{ value="Hello World" }
              var getNewCookie = $cookieStore.get("newCookie");  // Hello World
              //$cookies.remove("theCookie"); // theCookie = unfefined
              //$cookies.remove("objCookie"); // objCookie = undefined
              var allCookies = $cookies.getAll(); // Object{ theCookie="Hello World", objCookie="{"value":"Hello World"}", newCookie="{"value":"Hello World"}" }
              $timeout(function(){
                  var _getCookie = $cookies.get("theCookie"); // theCookie = unfefined
                  var _getObjCookie = $cookies.getObject("objCookie"); // objCookie = undefined
                  $cookieStore.remove("newCookie"); // newCookie = undefined
              },6000);
          }
      }());
    复制代码

    注意 : angular 使用 cookies 需要引入angular-cookies[.min].js

    使用 cookies 需谨慎,多注意路径(path)和域(domain)的坑就基本没什么问题了

  • 相关阅读:
    vue实现图片预览旋转/放大缩小/上下切换等功能
    VMware安装遇到的问题
    webstrom弹出Server's certificate is not trusted 解决方法
    this.setData is not a function;at pages/index/index onLoad function;at api request success callback function TypeError: this.setData is not a function
    小程序结构目录
    第一个微信小程序
    用C#开发ActiveX控件给VB使用
    处理WIN7,winxp下安装vb6,出现config.nt 无法运行16位DOS程序故障的方法
    VISUALSVN: UNABLE TO CONNECT TO A REPOSITORY AT URL 无法连接主机的解决办法
    程序全屏开机运行,不允许操作电脑桌面,适用工控机触摸屏
  • 原文地址:https://www.cnblogs.com/koleyang/p/5053120.html
Copyright © 2020-2023  润新知