2015-08-11 28 views
5

Come si imposta il cookie con la data di scadenza con angularjs 1.4. La documentazione dice di usare

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. 

Ma la sua Firebug non working.My sta mostrando la data di scadenza come sessione unica.

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")); 
    } 
}); 

ho cercato di impostare il jsFiddle ma non potevo salvarlo. Il mio avviso è indefinito.

risposta

6

Rannuati nel tuo problema eseguendo il debug di qualcosa di simile.

Il bug principale era dovuto a expiry vs expires nel codice.

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/

Nota le due dipendenze angular.js e angular-cookies.js - linkato nella barra laterale - ho collegato a 1.4.2 sul CDN di Google.

3

Utilizzare questa libreria modificata di cookie angolari. In questo è possibile impostare i cookie con il passare oggetto di scadenza e il percorso anche

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

Esempio:

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

impostare le ore, minuti, giorni dalla data di oggetto per impostare i cookie in scadenza. predefinito sarà sessione.

(scusate per il cattivo :) inglese

+0

Grazie per l'answer.But io sono fuori 1.. x versione e tryout 2.x versione con script di tipo, ti terrò informato e apprezzerai la tua risposta –

2

ho incontrato questo problema con Firefox non salvare i cookie. Secondo il documento https://docs.angularjs.org/api/ngCookies/service/ $ biscotti, la chiamata biscotto corretta dovrebbe essere:

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

nota la "scade vs scadenza e le [args] avvolgenti

+1

Le parentesi quadre non sono necessarie. –

Problemi correlati