web-dev-qa-db-ja.com

AngularJS:[オブジェクトオブジェクト]の結果を与えるCookieへのオブジェクトの保存

このユーザーオブジェクトをサービスに送信するときに、ユーザー資格情報のグループをCookieに保存しようとしています-

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

ただし、このCookieを取得しようとすると、オブジェクトではなく、「[オブジェクトオブジェクト]」という文字列しか取得できません。

私はそれを機能させることができることを知っているので、すべてのユーザー資格情報を独自のCookieに個別に保存できますが、それはかなり非効率的ですか?これに対する簡単な修正はありますか?この問題について私が見つけた上位の結果はJQueryに関連しており、私にとってはうまくいきませんでした。

14
user3407039

JSONのオブジェクトが含まれているため常に_[Object Object]_を表示するオブジェクトを直接印刷していますが、アラートメソッドを印刷しているときに、コンソールでそれを表示するために.toString()メソッドを使用しています。

すべてのJSONオブジェクトを文字列に変換するJSON.stringify(user)を作成する必要があります。そのオブジェクトを使用している間、オブジェクトをJSONに変換するJSON.parse(user)を使用する必要があります

11
Pankaj Parkar

Angular 1.4では、次のようにCookieを作成してJSONオブジェクトを保存していることがわかりました。

_      var obj = {
        currentUser: {
          username: "testUN",
          authdata: authdata
        }
      };
      $cookies.putObject('cookieName', obj);_

次のようにクッキーを取り戻すことができます:

var cookieWObject = $cookies.getObject('cookieName');

次に、次のような値を取得します。

_var username = cookieWObject.currentUser.username;
var authdata = cookieWObject.currentUser.authdata;_
39
sigmapi13

angularでcookieを使用するには、コントローラーで依存性 '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'));
  

}]);
2
Ashish Kadam
JSON.stringify(user); //for storing in cookies

JSON.parse($cookies.user); //for converting into an object
1
puneet