angular $cookies、$cookieStore

js 文件 加载

<script src="angular-cookies/angular-cookies.js"></script>
注入:angular.element("aa",[
ngCookies
]);
controller("pointController",function ($scope,common_Fun,$http,$cookieStore,$cookies) {
  $cookies.put("userId",result.data.data{path:cook_path,expires:cook_expires});
});
//cook_path :存的路径。 例如:cook_path='/'存在根目录下,以下所有路径的页面都能取到   cook_expires = new Date(new Date("2020/08/15").getTime()); 存到2020年  这里使用2020/08/15不使用2020-08-15是因为ios不支持这种时间换算。
 //expires :存的期限 ,只支持 new Date()这样的原生格式。 $cookies.get("userId")取值。 //$cookieStore使用简单的多,只有存取删,但在实际上不够满足需求 $cookieStore.put("userId",111); $cookieStore.get("userId")

注意: cookies的只能获取到父或同级存储的值,并不能取到子级下储存的值,在子文件下储存cookie要想所有 文件都能渠道,这里只能使用$cookies.put的方法,加上储存的路径path,一般path可等于rootName/sonName/htmlName 即所有html文件的放在的文件夹名即可

    但在服务器上可能中不到根目录的名字,或者级别太多,使用path = “/” 即可。

    $cookieStore的使用只限于同级和上级。

转载于:https://www.cnblogs.com/changyaoself/p/7692371.html

AngularJS(即 Angular 1.x)中,`$cookies` 是一个内置的服务,用于操作浏览器的 Cookie。它提供了简单的方法来读取、写入和删除 Cookie。 --- ## ✅ `$cookies` 的基本用法(AngularJS 1.x) AngularJS 提供了两个版本的 `$cookies` 实现: 1. **`$cookies`(旧版)**:返回一个对象,每个 Cookie 都是该对象的属性。 2. **`$cookieStore`(已废弃)**:封装了 `$cookies`,提供更简单的 API,但已被弃用。 3. **`$cookies` with `put`/`get` 方法(推荐)**:AngularJS 1.4+ 推荐使用新 API。 --- ### ✅ 示例:AngularJS 中使用 `$cookies` ```javascript angular.module('myApp', []) .controller('MyCtrl', ['$scope', '$cookies', function($scope, $cookies) { // 设置 Cookie $cookies.put('username', 'john_doe', { path: '/', domain: 'example.com', expires: new Date().getTime() + (1000 * 60 * 60 * 24 * 7), // 一周后过期 secure: true // 仅通过 HTTPS 传输 }); // 获取 Cookie var username = $cookies.get('username'); console.log('Username:', username); // 删除 Cookie $cookies.remove('username', { path: '/', domain: 'example.com' }); }]); ``` --- ### ✅ `$cookies` 支持的方法(AngularJS 1.4+) | 方法 | 描述 | |------|------| | `$cookies.put(key, value, options)` | 设置一个 Cookie | | `$cookies.get(key)` | 获取指定名称的 Cookie 值 | | `$cookies.getAll()` | 获取所有 Cookie | | `$cookies.remove(key, options)` | 删除指定 Cookie(需匹配 path/domain) | --- ### ✅ `put` 方法支持的 options 参数 | 参数 | 类型 | 描述 | |------|------|------| | `path` | string | Cookie 的路径,默认 `/` | | `domain` | string | Cookie 的域名 | | `expires` | Date/number | 过期时间(Date 对象或毫秒时间戳) | | `secure` | boolean | 是否仅通过 HTTPS 传输 | | `samesite` | string | SameSite 属性(Lax / Strict / None)⚠️ | > ⚠️ 注意:AngularJS 本身不支持设置 `SameSite`,你需要手动拼接或使用原生 `document.cookie`。 --- ### ✅ 手动设置 SameSite 的方法(AngularJS 中) 由于 AngularJS 的 `$cookies` 不支持设置 `SameSite`,你可以使用如下方式: ```javascript function setCookieWithSameSite(name, value, options) { let cookieStr = encodeURIComponent(name) + '=' + encodeURIComponent(value); if (options.expires) { cookieStr += '; expires=' + new Date(options.expires).toUTCString(); } if (options.path) { cookieStr += '; path=' + options.path; } if (options.domain) { cookieStr += '; domain=' + options.domain; } if (options.secure) { cookieStr += '; secure'; } if (options.sameSite) { cookieStr += '; SameSite=' + options.sameSite; } document.cookie = cookieStr; } // 使用示例 setCookieWithSameSite('auth_token', 'abc123', { path: '/', secure: true, sameSite: 'None', expires: new Date().getTime() + 1000 * 60 * 60 * 24 * 7 }); ``` --- ### ✅ Angular (2+): `$cookies` 已不存在,改用 `document.cookie` 或服务封装 Angular(2+)不再提供 `$cookies` 服务,你需要手动操作 Cookie: ```typescript // 获取 Cookie getCookie(name: string): string | null { const regex = new RegExp('(?:(?:^|.*;\\s*)' + name + '\\s*\\=\\s*([^;]*).*$)|^.*$'); return document.cookie.replace(regex, '$1'); } // 设置 Cookie setCookie(name: string, value: string, options: any = {}) { let cookieStr = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`; if (options.expires) { cookieStr += '; expires=' + new Date(options.expires).toUTCString(); } if (options.path) { cookieStr += '; path=' + options.path; } if (options.domain) { cookieStr += '; domain=' + options.domain; } if (options.secure) { cookieStr += '; secure'; } if (options.sameSite) { cookieStr += '; SameSite=' + options.sameSite; } document.cookie = cookieStr; } ``` --- ### ✅ 总结对比 | 框架 | 是否支持 `$cookies` | 推荐做法 | |------|---------------------|----------| | AngularJS (1.x) | ✅ 支持 `$cookies` | 使用 `$cookies.put/get/remove` | | Angular (2+) | ❌ 不再支持 `$cookies` | 使用 `document.cookie` 或封装服务 | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值