কুকি অ্যাক্সেস করার AngularJS উপায় কী? আমি কুকিজের জন্য একটি পরিষেবা এবং মডিউল উভয়েরই রেফারেন্স দেখেছি, তবে এর কোনও উদাহরণ নেই।
আছে, বা একটি AngularJS ক্যানোনিকাল পদ্ধতির নেই?
কুকি অ্যাক্সেস করার AngularJS উপায় কী? আমি কুকিজের জন্য একটি পরিষেবা এবং মডিউল উভয়েরই রেফারেন্স দেখেছি, তবে এর কোনও উদাহরণ নেই।
আছে, বা একটি AngularJS ক্যানোনিকাল পদ্ধতির নেই?
উত্তর:
এই উত্তরটি সর্বশেষ স্থিতিশীল অ্যাঙ্গুলারজ সংস্করণ প্রতিবিম্বিত করতে আপডেট করা হয়েছে। একটি গুরুত্বপূর্ণ নোট হ'ল $cookieStoreচারপাশে একটি পাতলা মোড়ক $cookies। তারা বেশ সাদৃশ্যপূর্ণ যে তারা কেবল সেশন কুকিজ নিয়ে কাজ করে। যদিও এটি আসল প্রশ্নের উত্তর দেয়, এমন আরও কিছু সমাধান রয়েছে যা আপনি বিবেচনা করতে পারেন যেমন লোকালস্টোরেজ ব্যবহার করা, বা jquery.cookie প্লাগইন (যা আপনাকে আরও সূক্ষ্ম কন্ট্রোল দেয় এবং সার্ভারসাইড কুকিজ দেয় ang অবশ্যই কৌণিক বিষয়গুলিতে এটি করার অর্থ আপনি সম্ভবত সেগুলি সেগুলিতে আবদ্ধ করতে চান এবং $scope.applyমডেলগুলির পরিবর্তনের কৌণিকটি অবহিত করতে ব্যবহার করতে (কিছু ক্ষেত্রে)।
অন্য একটি নোট এবং তা হ'ল আপনি $cookieমূল্য সঞ্চয় করতে ব্যবহার করেছেন কিনা তার উপর নির্ভর করে ডেটা টান দেওয়ার সময় দুজনের মধ্যে সামান্য পার্থক্য রয়েছে $cookieStore। অবশ্যই, আপনি সত্যিই একটি বা অন্যটি ব্যবহার করতে চাই।
জেএস ফাইলের রেফারেন্স যুক্ত করার পাশাপাশি ngCookiesআপনার অ্যাপ্লিকেশন সংজ্ঞা যেমন আপনার ইনজেকশন করা প্রয়োজন :
angular.module('myApp', ['ngCookies']);
আপনি তারপর যেতে ভাল করা উচিত।
এখানে একটি কার্যকরী ন্যূনতম উদাহরণ রয়েছে, যেখানে আমি এটি দেখাই যে cookieStoreকুকিজের চারপাশে একটি পাতলা মোড়ক:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
</head>
<body ng-controller="MyController">
<h3>Cookies</h3>
<pre>{{usingCookies|json}}</pre>
<h3>Cookie Store</h3>
<pre>{{usingCookieStore|json}}</pre>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular-cookies.js"></script>
<script>
angular.module('myApp', ['ngCookies']);
app.controller('MyController',['$scope','$cookies','$cookieStore',
function($scope,$cookies,$cookieStore) {
var someSessionObj = { 'innerObj' : 'somesessioncookievalue'};
$cookies.dotobject = someSessionObj;
$scope.usingCookies = { 'cookies.dotobject' : $cookies.dotobject, "cookieStore.get" : $cookieStore.get('dotobject') };
$cookieStore.put('obj', someSessionObj);
$scope.usingCookieStore = { "cookieStore.get" : $cookieStore.get('obj'), 'cookies.dotobject' : $cookies.obj, };
}
</script>
</body>
</html>
পদক্ষেপগুলি হ'ল:
angular.jsangular-cookies.jsngCookiesআপনার অ্যাপ্লিকেশন মডিউলটি ইনজেক্ট করুন (এবং নিশ্চিত করুন যে আপনি সেই ng-appবৈশিষ্ট্যটিতে সেই মডিউলটি উল্লেখ করেছেন)$cookiesবা $cookieStoreপরামিতি যুক্ত করুনcookieStoreপুট / গেট পদ্ধতি ব্যবহার করে অ্যাক্সেস করুনএইভাবে আপনি কুকি মানগুলি সেট করতে এবং পেতে পারেন। আমি যখন এই প্রশ্নটি পেয়েছিলাম তখন আমি মূলত এটিই খুঁজছিলাম।
নোট আমরা $cookieStoreপরিবর্তে ব্যবহার$cookies
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="http://code.angularjs.org/1.0.0rc10/angular-1.0.0rc10.js"></script>
<script src="http://code.angularjs.org/1.0.0rc10/angular-cookies-1.0.0rc10.js"></script>
<script>
angular.module('myApp', ['ngCookies']);
function CookieCtrl($scope, $cookieStore) {
$scope.lastVal = $cookieStore.get('tab');
$scope.changeTab = function(tabName){
$scope.lastVal = tabName;
$cookieStore.put('tab', tabName);
};
}
</script>
</head>
<body ng-controller="CookieCtrl">
<!-- ... -->
</body>
</html>
কৌণিক অবচিত $cookieStore সংস্করণ 1.4.x, তাই ব্যবহার $cookiesএর পরিবর্তে আপনি কৌণিক এর সর্বশেষ সংস্করণ ব্যবহার করছেন কিনা তা। সিনট্যাক্স $cookieStoreএবং এর জন্য একই থাকে $cookies:
$cookies.put("key", "value");
var value = $cookies.get("key");
একটি API ওভারভিউর জন্য ডক্স দেখুন । এটাও মনে রাখবেন যে কুকি পরিষেবাটি কয়েকটি নতুন গুরুত্বপূর্ণ বৈশিষ্ট্য যেমন মেয়াদ নির্ধারণের ( এই উত্তরটি দেখুন ) এবং ডোমেন ( কুকিজপ্রভাইডার ডক্স দেখুন ) দিয়ে বাড়ানো হয়েছে ।
নোট করুন, সংস্করণ 1.3.x বা এর নীচে, $ কুকিজের উপরের চেয়ে আলাদা বাক্য গঠন রয়েছে:
$cookies.key = "value";
var value = $cookies.value;
এছাড়াও আপনি যদি বোওয়ার ব্যবহার করছেন তবে আপনার প্যাকেজের নামটি সঠিকভাবে লিখতে ভুলবেন না:
bower install angular-cookies@X.Y.Z
যেখানে এক্সওয়াইজেডটি আপনি চলছে এমন অ্যাঙ্গুলারজেএস সংস্করণ। বোরারের "কৌণিক-কুকি" ('গুলি' ছাড়া) তে অন্য একটি প্যাকেজ রয়েছে যা অফিশিয়াল কৌণিক প্যাকেজ নয়।
এফওয়াইআই, আমি এর $cookieStoreদুটি $rootScopeজেনারেটর , ক এবং অ্যাংুলারজেএস ১.০. using ব্যবহার করে এর একটি জেএসফিডেল একসাথে রেখেছি। আপনি যদি এটির সাথে ঘাঁটাঘাঁটি করেন তবে এটি বেস হিসাবে http://jsfiddle.net/krimple/9dSb2/ হিসাবে JSFifddle এ রয়েছে ...
এর সূচনাটি হ'ল:
জাভাস্ক্রিপ্ট
var myApp = angular.module('myApp', ['ngCookies']);
myApp.controller('CookieCtrl', function ($scope, $rootScope, $cookieStore) {
$scope.bump = function () {
var lastVal = $cookieStore.get('lastValue');
if (!lastVal) {
$rootScope.lastVal = 1;
} else {
$rootScope.lastVal = lastVal + 1;
}
$cookieStore.put('lastValue', $rootScope.lastVal);
}
});
myApp.controller('ShowerCtrl', function () {
});
এইচটিএমএল
<div ng-app="myApp">
<div id="lastVal" ng-controller="ShowerCtrl">{{ lastVal }}</div>
<div id="button-holder" ng-controller="CookieCtrl">
<button ng-click="bump()">Bump!</button>
</div>
</div>
http://docs.angularjs.org/api/ngCookies.$cookieStore
এটি ব্যবহারের জন্য আপনি http://code.angularjs.org/1.0.0rc10/angular-cookies-1.0.0rc10.js অন্তর্ভুক্ত করেছেন তা নিশ্চিত করুন ।
$cookieStoreকরার পরে , আমি আমার নিয়ামকের (যেমন function AccountCtrl($scope, $cookieStore)) এর স্বাক্ষরে যুক্ত করেছি , তবে নীচের ত্রুটি বার্তাটি পেয়েছি: অজানা সরবরাহকারী: $ কুকিস্টোরপ্রোভিডার <- $ কুকিস্টোর
$cookieStoreবেশিরভাগই ক্লায়েন্ট-উত্পাদিত কুকিজের জন্য উদ্দিষ্ট। সার্ভার-উত্পন্ন কুকিজ অ্যাক্সেস করতে, তার $cookiesপরিবর্তে আমাকে ব্যবহার করতে হয়েছিল।
https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular-cookies.min.js) ব্লগ পোস্ট দেখুন: blog.angularjs.org /
অ্যাঙ্গুলারজেএস ব্রাউজার কুকিজ ব্যবহার করতে এনজি কুকিজ মডিউল এবং $ কুকি স্টোর পরিষেবা সরবরাহ করে।
কুকি বৈশিষ্ট্যটি ব্যবহার করতে আমাদের কৌনিক-কুকিজ.মিন.জেএস ফাইল যুক্ত করতে হবে।
এখানে AngularJS কুকির কিছু পদ্ধতি রয়েছে।
(চাবি) পান; // এই পদ্ধতিটি প্রদত্ত কুকি কীটির মান প্রদান করে।
getObject (কী); // এই পদ্ধতিটি প্রদত্ত কুকি কীটির ডিসরিয়ালাইজড মান প্রদান করে।
getAll (); // এই পদ্ধতিটি সমস্ত কুকি সহ একটি মূল মান অবজেক্ট দেয়।
put (কী, মান, [বিকল্পসমূহ]); // এই পদ্ধতি প্রদত্ত কুকি কীয়ের জন্য একটি মান সেট করে।
সরান (কী, [বিকল্পসমূহ]); // এই পদ্ধতি প্রদত্ত কুকি সরান।
উদাহরণ
এইচটিএমএল
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.1/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.1/angular-cookies.min.js"></script>
</head>
<body ng-controller="MyController">
{{cookiesUserName}} loves {{cookietechnology}}.
</body>
</html>
জাভাস্ক্রিপ্ট
var myApp = angular.module('myApp', ['ngCookies']);
myApp.controller('MyController', ['$scope', '$cookies', '$cookieStore', '$window', function($scope, $cookies, $cookieStore, $window) {
$cookies.userName = 'Max Joe';
$scope.cookiesUserName = $cookies.userName;
$cookieStore.put('technology', 'Web');
$scope.cookietechnology = $cookieStore.get('technology'); }]);
আমি http://www.tutsway.com/simple-example-of-cookie-in-angular-js.php থেকে রেফারেন্স নিয়েছি ।
কৌণিক কুকি লাইব যুক্ত করুন: কৌণিক-কুকি.জ
আপনি সংশ্লিষ্ট কন্ট্রোলারে $ কুকিজ বা ie কুকি স্টোর প্যারামিটার ব্যবহার করতে পারেন
প্রধান নিয়ামক এই ইনজেকশন 'এনজিকুকিজ' যুক্ত করুন:
angular.module("myApp", ['ngCookies']);
আপনার নিয়ামকটিতে কুকিগুলি এভাবে ব্যবহার করুন:
app.controller('checkoutCtrl', function ($scope, $rootScope, $http, $state, $cookies) {
//store cookies
$cookies.putObject('final_total_price', $rootScope.fn_pro_per);
//Get cookies
$cookies.getObject('final_total_price'); }
মূল গৃহীত উত্তরে jquery.cookie প্লাগইন উল্লেখ করা হয়েছে । যদিও কয়েক মাস আগে এটির নামকরণ করা হয়েছিল জেএস-কুকিতে এবং jQuery নির্ভরতা অপসারণ করা হয়েছে। এর অন্যতম কারণ ছিল অ্যাংুলারের মতো অন্যান্য ফ্রেমওয়ার্কগুলির সাথে একীকরণ করা সহজ করা easy
এখন, আপনি যদি কৌণিকের সাথে জেএস-কুকি সংহত করতে চান তবে এটি এমন কিছুর মতোই সহজ:
module.factory( "cookies", function() {
return Cookies.noConflict();
});
এবং এটাই. কোন jQuery নেই। কোনও এনজিও কুকিজ নেই।
আপনি আলাদা আলাদাভাবে লিখিত নির্দিষ্ট সার্ভার-সাইড কুকিজগুলি পরিচালনা করতে কাস্টম উদাহরণও তৈরি করতে পারেন। উদাহরণস্বরূপ পিএইচপি নিন, যা সার্ভার-সাইডের স্পেসগুলি +শতাংশ-এনকোডের পরিবর্তে প্লাস চিহ্নে রূপান্তর করে :
module.factory( "phpCookies", function() {
return Cookies
.noConflict()
.withConverter(function( value, name ) {
return value
// Decode all characters according to the "encodeURIComponent" spec
.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent)
// Decode the plus sign to spaces
.replace(/\+/g, ' ')
});
});
কাস্টম সরবরাহকারীর ব্যবহার এই জাতীয় কিছু হবে:
module.service( "customDataStore", [ "phpCookies", function( phpCookies ) {
this.storeData = function( data ) {
phpCookies.set( "data", data );
};
this.containsStoredData = function() {
return phpCookies.get( "data" );
}
}]);
আমি আশা করি এটি যে কাউকে সাহায্য করবে।
এই ইস্যুতে বিস্তারিত তথ্য দেখুন: https://github.com/js-cookie/js-cookie/issues/103
সার্ভার-সাইডের সাথে কীভাবে সংহত করতে হয় তার বিশদ নথির জন্য, এখানে দেখুন: https://github.com/js-cookie/js-cookie/blob/master/SERVER_SIDE.md
কুকি ব্যবহার করে এখানে একটি সাধারণ উদাহরণ। বোতামে ক্লিক করার পরে, কুকিটি সংরক্ষণ করা হবে এবং পৃষ্ঠা পুনরায় লোড হওয়ার পরে পুনরুদ্ধার করা হবে।
app.html:
<html ng-app="app">
<head>
<meta charset="utf-8" />
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular-cookies.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="appController as vm">
<input type="text" ng-model="vm.food" placeholder="Enter food" />
<p>My favorite food is {{vm.food}}.</p>
<p>Open new window, then press Back button.</p>
<button ng-click="vm.openUrl()">Open</button>
</body>
</html>
app.js:
(function () {
"use strict";
angular.module('app', ['ngCookies'])
.controller('appController', ['$cookies', '$window', function ($cookies, $window) {
var vm = this;
//get cookie
vm.food = $cookies.get('myFavorite');
vm.openUrl = function () {
//save cookie
$cookies.put('myFavorite', vm.food);
$window.open("http://www.google.com", "_self");
};
}]);
})();