2015-05-26 54 views
1

對於1.4版本的AngularJS,是否有可能通過$cookies創建永久性Cookie?

我希望數據在我登錄後存儲7天。在版本1.3.X中,甚至無法設置到期日期。但在1.4下,他們已棄用$cookieStore並在$cookies中設置了到期日期的選項。

我想知道這個人是否會創建所需的更長時間段的cookie,而不是關閉瀏覽器並且一切都消失了。

+0

相關:http://stackoverflow.com/questions/24702432/angularjs-cookies-are-not-persisting – jdphenix

+0

你真的要使用cookies?除非你需要每個http請求的這個信息,否則我認爲本地存儲是一個更好的選擇。一個不錯的庫是[here](https://github.com/grevory/angular-local-storage),它適用於1.4 – JMK

+0

您不能使用localStorage設置到期日期。 –

回答

2

您可以在$cookiesProvider上設置expires屬性以更改$cookies服務的默認行爲。 $cookiesProvider可用於版本1.4。欲瞭解更多信息,請參閱here

+0

我認爲$ cookiesProvider也可以在1.3.X中使用。現在,假設我登錄並創建了一個過期時間設置爲7天+當前時間的cookie。如果我關閉瀏覽器並重新開始,它會在那裏嗎? OR就是這樣,Cookie的最長期限爲7天,如果您關閉它,將會被刪除,或者如果您已登錄,它將最多停留7天? – umeshksingla

0

下面的代碼做你想做的。當你正在寫cookie時,你可以tell the expiration date。您可以關閉瀏覽器,cookie將保持活動狀態。

設置過期日期防止在瀏覽器關閉時刪除它。 setting persistent cookies with javascript

<!DOCTYPE html> 
<html ng-app="cookiesExample"> 

    <head> 
    <meta charset="utf-8" /> 
    <script src="https://code.angularjs.org/1.4.0-rc.2/angular.js"></script> 
    <script src="https://code.angularjs.org/1.4.0-rc.2/angular-cookies.js"></script> 
    </head> 

    <body ng-controller="MainCtrl"> 
    <p>Hello {{name}}!</p> 

    <script> 
     angular.module('cookiesExample', ['ngCookies']) 
     .controller('MainCtrl', ['$cookies', '$scope', function($cookies, $scope) { 
     // Retrieving a cookie 
     var favoriteCookie = $cookies.get('myFavorite'); 

     $scope.name = (favoriteCookie) ? 'welcome back' : 'first time'; 
     // Setting a cookie 

     var now = new Date(); 
     now.setDate(now.getDate() + 7); 
     $cookies.put('myFavorite', 'oatmeal', { 
      expires: now 
     }); 

     }]); 
    </script> 
    </body> 


</html> 
相關問題