今天被$cookies给坑了,顺便总结一下踩了的坑。
1.首先注意第一项:angular.min.js的版本和angular-cookies.min.js的版本必须是一致的。
否则抛此异常:”TypeError: undefined is not a function
2.angularJS 1.3版本和1.4版本存取cookie是不同的,以下demo是1.3版本的存取cookie。
<!DOCTYPE html>
<html ng-app="myapp">
<head>
<title>AngularJS Cookies demo</title>
</head>
<body>
<div ng-controller="myCtrl">
<p>AngularJS Cookies demo</p>
</div>
</body>
<script src="http://code.angularjs.org/1.3.0/angular.min.js"></script>
<script src="http://code.angularjs.org/1.3.0/angular-cookies.min.js"></script>
<!--下载至本地使用:
<script type="text/javascript" src="js/angular.min.1.3.0.js?" ></script>
<script type="text/javascript" src="js/angular-cookies.min.js" ></script>
-->
<script>
var myapp = angular.module('myapp', ['ngCookies']);
myapp.controller('myCtrl', function($cookies, $scope) {
$cookies.key1 = 'aaaaaaaaaaaaaaa';
console.log($cookies.key1);
//打印结果:[Web浏览器] "aaaaaaaaaaaaaaa" /angularjs_demo/index.html (28)
})
</script>
</html>
3.若引入了1.3以上版本的angularJS,请用以下方法存取
<!DOCTYPE html>
<html ng-app="myapp">
<head>
<title>AngularJS Cookies demo</title>
</head>
<body>
<div ng-controller="myCtrl">
<p>AngularJS Cookies demo</p>
</div>
</body>
<!--angular.min 和 angular-cookies版本必须一致,这里都是1.6版本的 -->
<script type="text/javascript" src="js/angular.min.1.6.0.js" ></script>
<script type="text/javascript" src="js/angular-cookies.min.js" ></script>
<script>
var app=angular.module('myapp', ['ngCookies']);
app.controller('myCtrl', ['$cookies', function($cookies) {
// 存 cookie
$cookies.put('myFavorite', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
// 取 cookie
var favoriteCookie = $cookies.get('myFavorite');
console.log(favoriteCookie);
//打印结果:[Web浏览器] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" /angularjs_demo/index.html (37)
}]);
</script>
</html>
4.各个版本的下载地址: