Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular and $cookies - $cookies.get is not a function

Tags:

angularjs

I'm trying to use cookies within Angular - here's what I'm trying:

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular-cookies.min.js"></script>

var capApp = angular.module('capApp', ['ngRoute','ui.bootstrap','ngCookies']);

capApp.controller('cookieCtrl', ['$scope','$cookies', function($scope, $cookies) {
  var favoriteCookie = $cookies.get('user_id');
  alert(favoriteCookie);
}]);

I get this error in the console:

TypeError: $cookies.get is not a function

Any ideas where I'm going wrong?

UPDATE

Check which version of Angular you are using for everything - any Angular guys read this, make the version switch in the docs bright green and huge! You simply don't notice it.

like image 317
StudioTime Avatar asked Mar 10 '15 18:03

StudioTime


3 Answers

In Angular 1.3.14 you can just use

var favoriteCookie = $cookies[user_id];

See the documentaiton here: Angular Cookies

like image 138
Rias Avatar answered Nov 08 '22 10:11

Rias


The following method should work.

var favoriteCookie = $cookies.user_id;
like image 2
cilerler Avatar answered Nov 08 '22 11:11

cilerler


The syntax you have is for version 1.4.x but you are referencing an older version. If you do not want to update to 1.4.x, you can use $cookieStore instead as follows:

$cookieStore.put("key", "value"); 
var value = $cookieStore.get("key");

Alternatively if you are using version 1.3.x or below, you can use $cookies as follows:

$cookies.key = "value";
var value = $cookies.key; 
like image 11
Maksood Avatar answered Nov 08 '22 09:11

Maksood