Подтвердить что ты не робот

AngularJS: сохранение объекта в файле cookie, дающего результат [Object Object]

Я пытаюсь сохранить группу учетных данных пользователя в cookie при отправке в этот пользовательский объект моей службы -

this.SetCookie = function (user) {
    $cookies.user = user;
}

Однако, что я получаю, когда пытаюсь извлечь этот файл cookie, я не получаю объект, а просто строку, которая говорит "[Object Object]"

Я могу хранить все пользовательские учетные данные отдельно в своих собственных файлах cookie, так как я знаю, что могу сделать эту работу, но она кажется довольно неэффективной? Есть ли легкое решение для этого? Главный результат, который я нашел для этой проблемы, был связан с JQuery и не работал у меня.

4b9b3361

Ответ 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'));
  

}]);