У меня возникают проблемы с сохранением $cookieStore значения файла cookie после его обновления. Вот два метода UserService, которые имеют дело с файлом cookie:
var getCurrentUser = function () {
return $cookieStore.get('currentUser');
};
var updateCurrentUser = function () {
return $http.get(baseUrl + 'api/session').then(function (response) {
$cookieStore.put('currentUser', response.data);
$rootScope.$broadcast('currentUser', response.data);
}, function (response) {
$cookieStore.remove('currentUser');
$rootScope.$broadcast('currentUser', null);
});
};
В моем приложении после выполнения действия, которое повлияет на метаданные текущего пользователя, я вызываю UserService.updateCurrentUser()
, который извлекает последние пользовательские данные с сервера и обновляет этот файл cookie. Затем в местах, отображающих пользовательские данные, у меня есть следующий код, который будет обновлять пользовательскую модель в этом конкретном контроллере:
$scope.$on('currentUser', function (event, data) {
$scope.user = data;
});
Когда я прохожу код, кажется, что все работает правильно. После запуска строки $cookieStore.put('currentUser', response.data);
обновленное значение можно подтвердить, проверив $cookieStore.get('currentUser')
. Однако, когда я проверяю фактический файл cookie с помощью инструмента браузера, значение файла cookie не обновляется. Я не уверен, что инструмент браузера требует обновления для отображения новых данных. Но когда я обновляю страницу, обновленное значение файла cookie также нигде не видно. Что происходит?
Заранее спасибо.
$cookies
, я не уверен, какую версию angular вы используете, но я предполагаю, что она достаточно похожа для работы с документами: docs.angularjs.org/api/ngCookies/service/$cookies - person David Spence   schedule 11.05.2015