AngularJS访问cookie的方式是什么?我看到了对cookie的服务和模块的引用,但没有示例。
有没有AngularJS的规范方法?
AngularJS访问cookie的方式是什么?我看到了对cookie的服务和模块的引用,但没有示例。
有没有AngularJS的规范方法?
当前回答
Angular在1.4版弃用了$cookieStore。因此,如果你使用的是最新版本的angular. X,请使用$cookies。$cookieStore和$cookies的语法保持不变:
$cookies.put("key", "value");
var value = $cookies.get("key");
有关API的概述,请参阅文档。还要注意的是,cookie服务已经增强了一些新的重要功能,比如设置过期时间(见这个答案)和域名(见CookiesProvider文档)。
请注意,在版本1.3中。X或以下,$cookies的语法与上面不同:
$cookies.key = "value";
var value = $cookies.value;
此外,如果您正在使用bower,请确保正确键入软件包名称:
bower install angular-cookies@X.Y.Z
其中X.Y.Z是你正在运行的AngularJS版本。 在凉亭"angular-cookie"中还有一个包(没有's'),它不是正式的angular包。
其他回答
下面是一个使用$cookies的简单示例。单击按钮后,cookie将被保存,重新加载页面后,cookie将被恢复。
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");
};
}]);
})();
cookieStore美元http://docs.angularjs.org/api/ngCookies。
确保包含http://code.angularjs.org/1.0.0rc10/angular-cookies-1.0.0rc10.js来使用它。
供你参考,我用$cookieStore、两个控制器、$rootScope和AngularjS 1.0.6组合了一个JSFiddle。它在JSFifddle的http://jsfiddle.net/krimple/9dSb2/作为一个基地,如果你搞砸了这个…
它的要点是:
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>
AngularJS提供了ngCookies模块和$cookieStore服务来使用浏览器cookie。
我们需要添加angular-cookies.min.js文件来使用cookie特性。
下面是AngularJS Cookie的一些方法。
(关键);//该方法返回给定cookie key的值。 getObject(关键);//该方法返回给定对象的反序列化值 饼干的关键。 getAll ();//该方法返回一个键值对象 饼干。 Put (key, value, [options]);//该方法设置一个给定的值 饼干的关键。 删除(关键,[选项]);//此方法删除给定的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。
Angular在1.4版弃用了$cookieStore。因此,如果你使用的是最新版本的angular. X,请使用$cookies。$cookieStore和$cookies的语法保持不变:
$cookies.put("key", "value");
var value = $cookies.get("key");
有关API的概述,请参阅文档。还要注意的是,cookie服务已经增强了一些新的重要功能,比如设置过期时间(见这个答案)和域名(见CookiesProvider文档)。
请注意,在版本1.3中。X或以下,$cookies的语法与上面不同:
$cookies.key = "value";
var value = $cookies.value;
此外,如果您正在使用bower,请确保正确键入软件包名称:
bower install angular-cookies@X.Y.Z
其中X.Y.Z是你正在运行的AngularJS版本。 在凉亭"angular-cookie"中还有一个包(没有's'),它不是正式的angular包。