2015-08-11 3 views
5

Как установить cookie с датой истечения срока действия с помощью angularjs 1.4. В документации сказано, использовать

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. 

Но его не working.My поджигатель показывает дату истечения срока действия, как только сессии.

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, но я не смог спасти его. Мое предупреждение показывается неопределенным.

ответ

6

Отправлено в вашу проблему, отлаживая что-то подобное.

Основная ошибка была вызвана expiry против 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 - связаны в боковой панели - я связан с 1.4.2 на КДС Google.

3

Используйте эту модифицированную библиотеку угловых печеньков. В этом вы можете установить печенье с переходом объекта из истекающих и пути также

https://github.com/babarxm/angular-cookies-fixed/tree/v1.5.6

Пример:

$cookies.put("token", { 
    expires : new Date(), 
    path : "/somepath" 
}); 

Установите часы, минуты, дни даты объекта установить кук истекающих. По умолчанию будет сеанс.

(простите за плохой английский :)

+0

Спасибо за answer.But я из 1.. x версия и тестовая версия 2.x с скриптом типа. Я буду уведомлять вас и оценивать ваш ответ. –

2

Я столкнулся с этой проблемой с Firefox не спасает печенье. Согласно документу https://docs.angularjs.org/api/ngCookies/service/ $ печенья, правильный вызов печенье должен быть:

$cookies.put("tech","angularjs",[{expires:now}]); 

нота «истекает через против истечения и [] упаковка арг

+1

Квадратные скобки не нужны. –

Смежные вопросы