AngularJS: сохранение объекта в файле cookie, дающего результат [Object Object]
Я пытаюсь сохранить группу учетных данных пользователя в cookie при отправке в этот пользовательский объект моей службы -
this.SetCookie = function (user) {
$cookies.user = user;
}
Однако, что я получаю, когда пытаюсь извлечь этот файл cookie, я не получаю объект, а просто строку, которая говорит "[Object Object]"
Я могу хранить все пользовательские учетные данные отдельно в своих собственных файлах cookie, так как я знаю, что могу сделать эту работу, но она кажется довольно неэффективной? Есть ли легкое решение для этого? Главный результат, который я нашел для этой проблемы, был связан с JQuery и не работал у меня.
Ответы
Ответ 1
Вы напрямую печатаете объект, который всегда будет показывать [Object Object]
, потому что он содержит объект JSON
, при печати его метода оповещения он использует метод .toString()
, чтобы показать его в консоли.
Вам нужно сделать JSON.stringify(user)
, который преобразует весь объект JSON
в строку. При использовании этого объекта вам нужно использовать JSON.parse(user)
, который преобразует объект в JSON
Ответ 2
В Angular 1.4 я обнаружил, что сохранение объекта JSON путем создания файла cookie следующим образом:
var obj = {
currentUser: {
username: "testUN",
authdata: authdata
}
};
$cookies.putObject('cookieName', obj);
Ответ 3
JSON.stringify(user); //for storing in cookies
JSON.parse($cookies.user); //for converting into an object
Ответ 4
Для использования файлов cookie в angular необходимо ввести зависимость "ngCookies" на вашем контроллере или объявить в angular.module('app', [ngCookies]), не использовать $cookieStore устарел.
var app = angular.module('myApp',['ngCookies']);
app.controller('cookiesController',['$scope','$cookies',function($scope,$cookies){
//using put method you can add value using key value
$cookies.put('Kye','Admin');
//access cookies value
console.log($cookies.get('Key'));
//You can add also object in Cookies
var data = {
'name':'admin',
'pass':'admin'
}
$cookies.putObject('data',data);
//access object value
console.log($cookies.getObject('data'));
}]);