2014-10-28 3 views
20

я могу установить печенье, как это:Как удалить все файлы cookie в Angularjs?

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

И я могу удалить его с

$cookieStore.remove('myCookie'); 

Но как я могу удалить все куки?

+0

У вас есть все ключи печеньем? –

+0

Я ищу универсальное решение ... –

ответ

28

Хорошо, очевидно, это не может быть лучшим решением, но я найти обходной путь:

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

Но I'ld по-прежнему ценят, если есть лучшее решение. Мне действительно интересно, почему нет встроенного метода $cookieStore.removeAll() ...

Требуется установить ngCookies модуль, который будет установлен.

Редактировать

С версии 1.4 $cookieStore устарела. Вместо этого вы можете воспользоваться услугой $cookies. Получите все файлы cookie с $cookies.getAll() и удалите их с помощью $cookies.remove('key').

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

@EpokK $ cookieStore - это не массив, который вы можете итератировать ... –

+3

$ cookieStore - это устаревшее использование $ cookie вместо –

+0

Спасибо за напоминание. Я обновил ответ соответственно ... –

0

В случае, если вы находитесь на этой странице, и вы работаете на старом проекте, который использует угловую 1.3.x или меньше, вы можете просто использовать этот

$cookies.cookieKey = undefined; 
delete $cookies['cookieKey']; 
Смежные вопросы