2014-10-28 4 views
20

Ich kann ein Cookie wie folgt festgelegt:Wie entfernen Sie alle Cookies in Angularjs?

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

Und ich kann es entfernen mit

$cookieStore.remove('myCookie'); 

Aber wie kann ich alle Cookies entfernen?

+0

verwenden Sie alle Schlüssel von Cookies haben Sie? –

+0

Ich bin auf der Suche nach einer generischen Lösung ... –

Antwort

28

Ok, natürlich kann dies nicht die beste Lösung sein, aber ich habe eine Abhilfe finden:

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

Aber I'ld schätzt nach wie vor, wenn es eine bessere Lösung. Ich bin wirklich neugierig darauf, warum es keine eingebaute $cookieStore.removeAll() Methode gibt ...

Erfordert die ngCookies Modul installiert werden.

bearbeiten

Mit der Version 1.4 wird $cookieStore veraltet. Stattdessen können Sie $cookies Service verwenden. Holen Sie alle Cookies mit $cookies.getAll() und entfernen Sie jedes mit $cookies.remove('key').

var cookies = $cookies.getAll(); 
angular.forEach(cookies, function (v, k) { 
    $cookies.remove(k); 
}); 
+0

@EpokK $ cookieStore ist kein Array, das Sie iterieren können ... –

+3

$ cookieStore ist veraltet Verwendung $ Cookie stattdessen –

+0

Danke für die Erinnerung. Ich habe die Antwort entsprechend aktualisiert ... –

0

Falls Sie auf dieser Seite und Sie auf einem alten Projekt arbeiten, die Winkel 1.3.x oder weniger verwendet, können Sie einfach diese

$cookies.cookieKey = undefined; 
delete $cookies['cookieKey'];