2015-06-05 2 views
11

Sto cercando di memorizzare un gruppo di credenziali utente in un cookie per l'invio in questo oggetto utente al mio servizio -AngularJS: Memorizzazione di un oggetto in un risultato cookie di donazione di [object Object]

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

Tuttavia ciò che Ottengo quando provo a recuperare questo cookie Non ottengo un oggetto ma solo una stringa che dice "[Oggetto Oggetto]"

Posso memorizzare tutte le credenziali dell'utente singolarmente nei loro cookie, come so che posso fare quel lavoro, ma sembra piuttosto inefficiente? C'è una soluzione facile per questo? Il risultato migliore che ho trovato per questo problema era relativo a JQuery e non funzionava per me.

+1

utente è oggetto allora avete bisogno di usare 'JSON.stringigy (utente)' ', mentre facendo console.log' –

+0

Grazie, questo ha funzionato (meno l'errore di battitura: p), ho solo usa JSON.parse quando ottengo il cookie per rimetterlo nel formato dell'oggetto. – user3407039

+0

dovrei aggiungere una risposta? –

risposta

9

Si sta stampando oggetto direttamente che sarà sempre mostrare [Object Object] perché contiene un oggetto di JSON, durante la stampa è metodo di avviso utilizza .toString() metodo per mostrarlo in consolle.

È necessario effettuare tale JSON.stringify(user) per convertire tutti gli oggetti JSON in stringa. Durante l'utilizzo di quell'oggetto è necessario utilizzare JSON.parse(user) che converte oggetto JSON

1
JSON.stringify(user); //for storing in cookies 

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

In angolare 1.4 ho scoperto che la memorizzazione di un oggetto JSON con la creazione di cookie in questo modo:

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

Consente di ripristinare il cookie in questo modo:

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

Poi raggiungere i valori in questo modo:

var username = cookieWObject.currentUser.username; 
 
var authdata = cookieWObject.currentUser.authdata;

+3

Questa dovrebbe essere la risposta accettata :) – Yulian

1

Per utilizzare i cookie in angolare deve essere iniettare dipendenza 'ngCookies' al vostro controller o dichiarare in angular.module ('app', [ngCookies]), non usato $ cookieStore è deprecato.

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')); 
 
    
 

 
}]);

Problemi correlati