如何使用angularjs 1.4设置带有失效日期的cookie。文档说要使用
expires - {string|Date} - String of the form "Wdy, DD Mon YYYY HH:MM:SS GMT" or a Date object indicating the exact date/time this cookie will expire.
但它没有用。我的firebug只将会话日期显示为会话。
HTML
<div ng-app="cookieApp" ng-controller="cookieCtrl">
<button ng-click="setCookie()">Set Cookie</button>
<button ng-click="getCookie()">Get Cookie</button>
</div>
的Javascript
var app=angular.module("cookieApp",['ngCookies']);
app.controller("cookieCtrl",function($scope, $cookies){
$scope.setCookie = function(){
console.log("setCookie");
var now = new Date();
now.setDate(now.getDate() + 7);
$cookies.put("tech","angularjs",{expiry:now});
}
$scope.getCookie = function(){
alert( $cookies.get("tech"));
}
});
我试图设置jsFiddle但我无法保存它。我的警报显示未定义。
答案 0 :(得分:6)
调试类似的问题。
主要错误是由于代码中的expiry
vs expires
造成的。
var app = angular.module("cookieApp", ["ngCookies"]);
app.controller("cookieCtrl", function ($scope, $cookies) {
$scope.setCookie = function () {
console.log("setCookie");
var now = new Date();
now.setDate(now.getDate() + 7);
$cookies.put("tech", "angularjs", {
expires: now
});
}
$scope.getCookie = function () {
alert($cookies.get("tech"));
}
});
jsfiddle:http://jsfiddle.net/ucskyv67/
请注意angular.js
和angular-cookies.js
上的两个依赖关系 - 在侧栏中链接 - 我已经在谷歌的cdn上链接到1.4.2。
答案 1 :(得分:3)
使用这个经过修改的angular-cookies库。 在这里你可以设置带有过期对象和路径的cookie
https://github.com/babarxm/angular-cookies-fixed/tree/v1.5.6
示例:
$cookies.put("token", {
expires : new Date(),
path : "/somepath"
});
设置日期对象的小时,分钟,天数以设置Cookie到期。 默认是会话。
(抱歉英语不好:)。
答案 2 :(得分:2)
我遇到过firefox没有保存cookie的问题。根据doc https://docs.angularjs.org/api/ngCookies/service/ $ cookies,正确的cookie调用应该是:
$cookies.put("tech","angularjs",[{expires:now}]);
请注意“过期vs到期和[]包装args。