web-dev-qa-db-fra.com

Comment supprimer tous les cookies dans Angularjs?

Je peux définir un cookie comme celui-ci:

$cookieStore.put('myCookie','I am a cookie');

Et je peux l'enlever avec

$cookieStore.remove('myCookie');

Mais comment puis-je supprimer tous les cookies?

23
s.alem

Ok, évidemment ce n'est peut-être pas la meilleure solution, mais j'ai trouvé une solution:

angular.forEach($cookies, function (v, k) {
    $cookieStore.remove(k);
});

Mais j'apprécierais toujours s'il y a une meilleure solution. Je suis vraiment curieux de savoir pourquoi il n'y a pas de méthode $cookieStore.removeAll() intégrée ...

Nécessite l'installation du module ngCookies .

Modifier

Avec la version 1.4, $cookieStore Est obsolète. À la place, vous pouvez utiliser le service $cookies. Obtenez tous les cookies avec $cookies.getAll() et supprimez chacun avec $cookies.remove('key').

var cookies = $cookies.getAll();
angular.forEach(cookies, function (v, k) {
    $cookies.remove(k);
});
33
s.alem

Si vous êtes sur cette page et que vous travaillez sur un ancien projet qui utilise angular 1.3.x ou moins, vous pouvez simplement utiliser ceci

$cookies.cookieKey = undefined;
delete $cookies['cookieKey'];
0
Segun Kess