2015-08-11 20 views
5

Làm cách nào để đặt cookie có ngày hết hạn với angularjs 1.4. Tài liệu hướng dẫn sử dụng

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. 

Nhưng nó không hoạt động.Mẹ firebug chỉ hiển thị ngày hết hạn là Phiên.

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

Tôi cố gắng để thiết lập các jsFiddle nhưng tôi couldnt lưu nó. Cảnh báo của tôi đang hiển thị không xác định.

Trả lời

6

Đã khắc phục sự cố của bạn khi gỡ lỗi một cái gì đó tương tự.

Lỗi chính là do expiryexpires trong mã của bạn.

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/

Lưu ý hai phụ thuộc vào angular.jsangular-cookies.js - liên kết trong thanh bên - Tôi đã liên kết với 1.4.2 trên cdn của google.

3

Sử dụng thư viện cookie được chỉnh sửa này. Trong này, bạn có thể thiết lập các tập tin cookie với đi qua đối tượng của hết hạn và đường dẫn cũng

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

Ví dụ:

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

Đặt giờ, phút, ngày của đối tượng ngày để thiết lập cookie hết hạn. mặc định sẽ là phiên.

(xin lỗi vì tiếng anh xấu :)

+0

Cảm ơn answer.But tôi trong tổng số 1.. Phiên bản x và phiên bản tryout 2.x với kịch bản kiểu. Tôi sẽ giữ cho bạn thông báo và đánh giá cao phản hồi của bạn –

2

Tôi đã gặp sự cố này khi firefox không lưu cookie. Theo doc https://docs.angularjs.org/api/ngCookies/service/ $ cookies, các cuộc gọi Cookie đúng nên là:

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

lưu ý là "hết hạn vs hạn sử dụng, [] args gói

+1

Dấu ngoặc vuông là không cần thiết. –

Các vấn đề liên quan