angular 中使用 ngCookies 来操作 cookie NG

shuke 2019-3-14 2196

$cookiesProvider

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

默认属性

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

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

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

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

$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。


本地存储是一个非常重要的功能,在angular中,我们使用ngCookies来解决存储问题。

ngCookie的简单示例

第一步、引入angular-cookies

src="http://code.angularjs.org/1.2.9/angular.min.js

src="http://code.angularjs.org/1.2.9/angular-cookies.min.js


第二步、注入ngCookies

var app = angular.module('app',['ngCookies']);

第三步、controller中的使用

app.controller('ctrl',["$cookies","$cookieStore","$scope",function ($cookies, $cookieStore, $scope) {
        $scope.value = '123';
        $cookies.name = 'autumnswind';
        $cookieStore.put('age',123);
        $scope.displayCookie = function () {
            console.log('当前cookie情况',$cookieStore,$cookies);
            $scope.value = $cookies.name;
        }
    }])

api说明

  • $cookies是一个对象,就是你的存储的cookie对象。
  • $cookieStore也是一个对象,但是这个对象向你提供了三个操作cookie的接口,供我们使用。
  • 这三个方法分别是:get、put、remove方法。
  • 分别对应cookie操作的获取、设置、移除操作。

根据暴露的接口,我们一般可以这么使用cookie。

//设置cookie
$cookies.name = 'mapbar_front';
$cookieStore.put('name','mapbar_front');
//获取cookie
value name = $cookies.name;
value name = $cookieStore.get('name');
//移除cookie
$cookieStore.remove("name");
//设置过期日期
var time = new Date().getTime() + 5000;
$cookieStore.put("cookie", "Hello wsscat", {
   expires: time
})


可以以对象的形式存储

$cookieStore.put("user",{id: "id",name: "name"});


最新回复 (0)
全部楼主
返回