У меня возникли проблемы с $ cookieStore, сохраняющим значение cookie после его обновления. Вот два метода в UserService, который имеет дело с куки:
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', я не уверен, какую версию углового вы используете, но я предполагаю, что она достаточно похожа на работу с документами: https://docs.angularjs.org/api/ngCookies/service/$ cookies –
@DavidSpence: Спасибо! Мне пришлось заменить угловой 1.3.15 на 1.4.0, чтобы получить функциональность файла cookie, описанную в этом документе. Я могу установить срок действия, хотя текущая проблема уменьшает размер файла cookie до 4kb ... – im1dermike
Sweet! Добавление ответа на сладкие, сладкие интернет-точки. –