2015-05-26 5 views
4

У меня ошибка: «$ cookies.remove не является функцией» - при попытке очистить файлы cookie в моем угловом приложении. Насколько я вижу, я следую тому, что говорят угловые документы, а также то, что было сказано на этом форуме для удаления файлов cookie.

Вот моя служба, которая занимается этим,

app.service('authService', function ($cookies) { 

    this.SetUsername = function (username) { 
     $cookies.username = username; 
    } 

    this.GetUsername = function() { 
     return $cookies.username; 
    } 

    this.clearCookie = function(){ 
     $cookies.remove("username"); 

    } 

}); 

ГЕТ и набор функций и работать нормально, это просто, когда на самом деле пытается удалить кук при вызове функции очистки куки, что я получаю этот вопрос ,

+1

console.log ($ печенье)? есть .remove способ? –

+0

Вы установили угловые куки? И добавили ли вы ngCookies в зависимости от вашего модуля приложения? Используйте 'console.dir ($ cookies);', чтобы получить содержимое объекта. Определена ли функция удаления? Вы должны открыть консоль своего браузера (F12?), Чтобы увидеть вывод. –

+0

Включили ли вы угловое-cookies.js? https://code.angularjs.org/1.3.15/ – laughingpine

ответ

4

Во-первых, в какой версии Angular.js вы используете? Для меня кажется, что вы используете 1.3.x, что означает, что $ cookie фактически происходит из плагина ngCookies. В этом случае $ cookie - это не что иное, как простой объект, где запись создает новое значение cookie. Для того, чтобы напрямую цитировать из 1.3.x ngCookie документы:

только простой объект подвергается и путем добавления или удаления Свойства в/из этого объекта, новые куки создаются/удаляются в конце тока $ Eval. Свойства объекта могут быть только строками.

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

Если вы используете 1.4.x, и ваша реализация на самом деле будет правильной.

+0

Привет, я использую v1.3.15 углового. Я думал, что целью .remove было бы избавиться от собственности в cookie. Как я уже сказал в ответе выше, мне удалось заставить эту работу использовать «delete $ cookies [" username "]; вместо этого – user3407039

+0

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

+1

Ах, ладно, извините, я должен был понять, что вы имели в виду это с вашего начального поста. Я обращу больше внимания на версию углового списка, когда я буду читать документы в будущем. – user3407039

0

Включите файл с угловым печеньем на своей странице.

Угловая печенье файл: -

<script src="https://code.angularjs.org/1.4.4/angular-cookies.js"></script> 
Смежные вопросы