Cookie にアクセスする AngularJS の方法は何ですか? Cookie のサービスとモジュールの両方への参照を見てきましたが、例はありません。
AngularJS の標準的なアプローチはありますか、それともありませんか?
Cookie にアクセスする AngularJS の方法は何ですか? Cookie のサービスとモジュールの両方への参照を見てきましたが、例はありません。
AngularJS の標準的なアプローチはありますか、それともありませんか?
この回答は、最新の安定した angularjs バージョンを反映するように更新されました。重要な注意事項の 1 つ$cookieStore
は、 を囲む薄いラッパー$cookies
です。セッション Cookie でのみ機能するという点で、これらはほとんど同じです。これは元の質問に答えますが、localstorage や jquery.cookie プラグインを使用するなど、考慮したい他のソリューションがあります (これにより、よりきめ細かい制御が可能になり、サーバーサイド Cookie を実行できます。もちろん、angularjs でそうすることは、おそらくそれらをサービスにラップし、モデルへの変更の角度を通知するために使用したいと思うでしょう$scope.apply
(場合によっては)。
もう1つの注意点は、$cookie
値を格納するために使用したか、$cookieStore
. もちろん、どちらか一方を使用することをお勧めします。
js ファイルへの参照を追加するだけでなく、次のngCookies
ようなアプリ定義に挿入する必要があります。
angular.module('myApp', ['ngCookies']);
これで準備完了です。
これは機能的な最小限の例であり、cookieStore
Cookie の薄いラッパーであることを示しています。
<!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.js
angular-cookies.js
ngCookies
アプリモジュールに挿入します(そして、ng-app
属性でそのモジュールを参照していることを確認してください)$cookies
or$cookieStore
パラメータをコントローラに追加するcookieStore
put/get メソッドを使用したアクセスこれは、Cookie の値を設定および取得する方法です。これは、この質問を見つけたときに最初に探していたものです。
$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>
Angularはバージョン 1.4.x で廃止さ れたため、Angularの最新バージョンを使用している場合は代わりに使用してください。&の構文は同じままです。 $cookieStore
$cookies
$cookieStore
$cookies
$cookies.put("key", "value");
var value = $cookies.get("key");
API の概要については、ドキュメントを参照してください。また、有効期限の設定 (この回答を参照) やドメイン ( CookiesProvider Docsを参照) などの新しい重要な機能によって、Cookie サービスが強化されていることにも注意してください。
バージョン 1.3.x 以下では、$cookies の構文が上記とは異なることに注意してください。
$cookies.key = "value";
var value = $cookies.value;
また、bower を使用している場合は、パッケージ名を正しく入力してください。
bower install angular-cookies@X.Y.Z
ここで、XYZ は実行している AngularJS のバージョンです。公式のAngularパッケージではないbower「angular-cookie」(「s」なし)には別のパッケージがあります。
$cookieStore
参考までに、 、2 つのコントローラー、$rootScope
、および AngularjS 1.0.6を使用して、この JSFiddle をまとめました。これをいじっている場合は、ベースとしてhttp://jsfiddle.net/krimple/9dSb2/としてJSFifddle にあります...
その要点は次のとおりです。
Javascript
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 () {
});
HTML
<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を含めてください。
AngularJS は、ブラウザ Cookie を使用するために ngCookies モジュールと $cookieStore サービスを提供します。
Cookie 機能を使用するには、angular-cookies.min.js ファイルを追加する必要があります。
AngularJS Cookie のメソッドを次に示します。
取得 (キー); // このメソッドは、指定された Cookie キーの値を返します。
getObject(キー); //このメソッドは、指定された Cookie キーのデシリアライズされた値を返します。
すべて取得(); //このメソッドは、すべての Cookie を含むキー値オブジェクトを返します。
put (キー、値、[オプション]); //このメソッドは、指定された Cookie キーの値を設定します。
remove(キー, [オプション]); //このメソッドは、指定された Cookie を削除します。
例
HTML
<!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>
JavaScript
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から参照を取得しました。