हम कुकी में उपयोगकर्ता की प्राधिकरण जानकारी संग्रहीत करना चाहते हैं जिसे ब्राउज़र के ताज़ा (F5) पर खोना नहीं चाहिए।
हम प्राधिकरण जानकारी को "स्थायी-कुकी" में संग्रहीत करना चाहते हैं, जब उपयोगकर्ता ने लॉग-ऑन के समय "रिमेम्बर मी" चेक बॉक्स चुना है।
हम कुकी में उपयोगकर्ता की प्राधिकरण जानकारी संग्रहीत करना चाहते हैं जिसे ब्राउज़र के ताज़ा (F5) पर खोना नहीं चाहिए।
हम प्राधिकरण जानकारी को "स्थायी-कुकी" में संग्रहीत करना चाहते हैं, जब उपयोगकर्ता ने लॉग-ऑन के समय "रिमेम्बर मी" चेक बॉक्स चुना है।
जवाबों:
यह ngCookies
मॉड्यूल का उपयोग कर कोणीय के 1.4.0 निर्माण में संभव है :
https://docs.angularjs.org/api/ngCookies/service/$cookies
angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies) {
// Find tomorrow's date.
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() + 1);
// Setting a cookie
$cookies.put('myFavorite', 'oatmeal', {'expires': expireDate});
}]);
{'expires': expireDate});
या .............................................. ............ [{'expires': expireDate}]);
प्रारूप का उपयोग किया जाना चाहिए ...
1.4 के लिए: जैसा कि यहां और अन्य नीचे टिप्पणी में बताया गया है, 1.4 के रूप में, कोणीय के मूल कुकी समर्थन अब कुकीज़ को संपादित करने की क्षमता प्रदान करता है:
38fbe3ee के कारण, $ कुकीज वर्तमान ब्राउज़र कुकी मानों का प्रतिनिधित्व करने वाले गुणों को उजागर नहीं करेगी। $ कुकीज अब कुकीज़ में परिवर्तन के लिए ब्राउज़र को प्रदूषित नहीं करता है और अब कुकी कुकीज़ को $ कुकीज़ ऑब्जेक्ट पर कॉपी नहीं करता है।
यह बदल दिया गया था क्योंकि मतदान महंगा है और वास्तविक कुकीज़ कुकी मूल्यों के साथ सही ढंग से सिंक्रनाइज़ नहीं होने के कारण $ कुकीज़ गुणों के साथ समस्याएँ हैं (मूल रूप से मतदान को जोड़ने का कारण अलग-अलग टैब के बीच संचार की अनुमति देना था, लेकिन आज ऐसा करने के बेहतर तरीके हैं , उदाहरण के लिए लोकलस्टोरेज।)
$ कुकीज़ पर नया एपीआई इस प्रकार है:
Get getbbject putObject getObject getAll remove आपको कुकी डेटा तक पहुंचने के लिए ऊपर दिए गए तरीकों का आसानी से उपयोग करना चाहिए। इसका अर्थ यह भी है कि अब आप ब्राउज़र कुकीज़ पर होने वाले परिवर्तनों का पता लगाने के लिए $ कुकीज़ पर गुण नहीं देख सकते हैं।
यह सुविधा आम तौर पर केवल तब आवश्यक होती है जब कोई 3 पार्टी लाइब्रेरी प्रोग्रामेटिक रूप से रनटाइम पर कुकीज़ बदल रही हो। यदि आप इस पर भरोसा करते हैं तो आपको या तो कोड लिखना होगा जो कि 3 जी पार्टी लाइब्रेरी पर प्रतिक्रिया कर सकता है जो कुकीज़ में परिवर्तन कर सकता है या आपके स्वयं के मतदान तंत्र को लागू कर सकता है।
वास्तविक कार्यान्वयन एक $ कुकीज़प्रॉइडर ऑब्जेक्ट के माध्यम से किया जाता है , जिसे put
कॉल के माध्यम से पारित किया जा सकता है ।
1.3 और नीचे के लिए: आपमें से जिन्होंने jQuery प्लगइन्स लोड करने से बचने के लिए अपना सर्वश्रेष्ठ प्रदर्शन किया है, यह कोणीय के लिए एक अच्छा प्रतिस्थापन प्रतीत होता है - https://github.com/ivpusic/angular-cookie
कोणीय v1.4 में आप अंत में कुकीज़ के लिए कुछ विकल्प निर्धारित कर सकते हैं, जैसे कि समाप्ति। यहाँ एक बहुत ही सरल उदाहरण दिया गया है:
var now = new Date(),
// this will set the expiration to 12 months
exp = new Date(now.getFullYear()+1, now.getMonth(), now.getDate());
$cookies.put('someToken','blabla',{
expires: exp
});
var cookie = $cookies.get('someToken');
console.log(cookie); // logs 'blabla'
यदि आप इस कोड को चलाने के बाद अपने कुकीज़ की जांच करते हैं, तो आप देखेंगे कि समाप्ति ठीक से नामित कुकी के लिए सेट हो जाएगी someToken
।
put
ऊपर दिए गए फ़ंक्शन के लिए तीसरे पैराम के रूप में पारित ऑब्जेक्ट अन्य विकल्पों के लिए भी अनुमति देता है, जैसे कि सेटिंग path
, domain
और secure
। अवलोकन के लिए डॉक्स की जाँच करें।
PS - एक साइड नोट के रूप में यदि आप मन को अपग्रेड कर रहे हैं $cookieStore
, तो $cookies
कुकीज़ से निपटने का एकमात्र तरीका है। डॉक्स देखें
मैं एक अतिरिक्त उदाहरण प्रस्तुत करना चाहूंगा क्योंकि कुछ लोग कुकीज़ की अतिरिक्त अवधि को जीवन भर जानते हैं। अर्थात। वे कुकी को अंतिम 10 मिनट या 1 और दिन सेट करना चाहते हैं।
आमतौर पर आप पहले से ही जानते हैं कि कुकी सेकंड में कितनी देर तक चलेगी।
var today = new Date();
var expiresValue = new Date(today);
//Set 'expires' option in 1 minute
expiresValue.setMinutes(today.getMinutes() + 1);
//Set 'expires' option in 2 hours
expiresValue.setMinutes(today.getMinutes() + 120);
//Set 'expires' option in (60 x 60) seconds = 1 hour
expiresValue.setSeconds(today.getSeconds() + 3600);
//Set 'expires' option in (12 x 60 x 60) = 43200 seconds = 12 hours
expiresValue.setSeconds(today.getSeconds() + 43200);
$cookies.putObject('myCookiesName', 'myCookiesValue', {'expires' : expiresValue});
और आप इसे हमेशा की तरह पुनः प्राप्त कर सकते हैं:
var myCookiesValue = $cookies.getObject('myCookiesName');
यदि खाली है, तो यह अपरिभाषित है।
लिंक;
http://www.w3schools.com/jsref/jsref_obj_date.asp
https://docs.angularjs.org/api/ngCookies/provider/ $ कुकीज़
today
से आता है?
$cookies
यदि मूल्य समाप्त हो गया है तो स्वचालित रूप से अपरिभाषित रिटर्न?
आप कोणीय.जेएस स्क्रिप्ट पर जा सकते हैं और
फिर यू के
लिए इंसर्ट कुकी खोज self.cookies = function(name, value) {
को बदल सकते हैं। यू कोड को बदल सकते हैं जो 7 दिनों के लिए उदाहरण के लिए कुकी जोड़ता है।
if (value === undefined) {
rawDocument.cookie = escape(name) + "=;path=" + cookiePath +
";expires=Thu, 01 Jan 1970 00:00:00 GMT";
} else {
if (isString(value)) {
var now = new Date();
var time = now.getTime();
time += 24*60*60*1000*7;
now.setTime(time);
cookieLength = (rawDocument.cookie = escape(name) + '=' + escape(value) +
';path=' + cookiePath+";expires="+now.toGMTString()).length + 1
मुझे पता है कि यह सवाल थोड़ा पुराना है, और पहले से ही एक स्वीकृत जवाब है।
लेकिन अभी भी एक मौजूदा समस्या है जो मैं (jQuery या शुद्ध जावास्क्रिप्ट के बारे में नहीं) के साथ संघर्ष कर रहा हूँ।
इसलिए, कुछ शोध के बाद मुझे यह पता चला है: https://github.com/ivpusic/angular-cookie
जो $ कुकीज के समान "इंटरफ़ेस" प्रदान करता है। और समाप्ति तिथि (मूल्य और इकाइयों) को कॉन्फ़िगर करने की अनुमति देता है।
$ कुकी या $ कुकी के साथ समाप्ति तिथि पर कोणीय मूल समर्थन के बारे में, "वे" इस विषय पर 1.4 पर अपडेट का वादा करते हैं, इस पर गौर करें: https://github.com/angular/angular.js/pull/10530
यह संभव हो जाएगा समाप्ति की तारीख $ cookieStore.put (...) के साथ, कम से कम वे प्रस्ताव करते हैं कि ...
संपादित करें: मुझे एक "समस्या" का सामना करना पड़ा है आप कोणीय-कुकी मॉड्यूलर के साथ $ कुकीज़ नहीं मिला सकते हैं। इसलिए यदि आप एक कुकी सेट करते हैं, तो ipCookie(...)
इसे पुनः प्राप्त करें ipCookie(...)
क्योंकि $ कुकी के साथ यह वापस आ जाएगी undefined
।
जैसा कि @ विन्सेन्ट-ब्रिग्लिया ने बताया , एक jQuery ड्रॉप-इन है, जिसका उपयोग वर्कअराउंड के रूप में तब तक किया जा सकता है जब तक कि $cookie
सेवा विन्यास योग्य न हो जाए - इसे यहां देखें
आप https://github.com/ivpusic/angular-cookie का उपयोग कर सकते हैं
सबसे पहले आपको ipCookie को अपने कोणीय मॉड्यूल में इंजेक्ट करना होगा।
var myApp = angular.module('myApp', ['ipCookie']);
और अब, उदाहरण के लिए यदि आप इसे अपने नियंत्रक से उपयोग करना चाहते हैं
myApp.controller('cookieController', ['$scope', 'ipCookie', function($scope, ipCookie) {
// your code here
}]);
कुकी उपयोग बनाने के लिए
ipCookie(key, value);
मान स्ट्रिंग्स, संख्याओं, बूलियनों, सरणियों और वस्तुओं का समर्थन करता है और स्वचालित रूप से कुकी में क्रमबद्ध होगा।
आप कुछ अतिरिक्त विकल्प भी सेट कर सकते हैं, जैसे किसी कुकी के समाप्त होने पर दिन की संख्या
ipCookie(key, value, { expires: 21 });