2016-07-06 8 views
0

Ich habe diesen Dienst in meiner App. Dienst zum Einstellen und Abrufen des Benutzers im lokalen Speicher. Die Funktion getUser hat jedoch die JSON.parse-Funktion und nicht mein Objekt zurückgegeben.AngularJS lokaler Speicherdienst falsche Rückgabe

Jeder kann dieses Problem lösen?

Der Code ist hier:

.service('UserService', function() { 
    // For the purpose of this example I will store user data on ionic local storage but you should save it on a database 
    var setUser = function(user_data) { 
    window.localStorage.extract = JSON.stringify(user_data); 
    }; 

    var getUser = function(){ 
     console.log(JSON.parse(window.localStorage.user || '{}')); 
    return JSON.parse(window.localStorage.user || '{}'); 
    }; 

    var clearUser = function(){ 
     delete window.localStorage.user;  
    }; 

    return { 
    getUser: getUser, 
    setUser: setUser, 
    clearUser: clearUser 
    }; 
}) 

Dank

Antwort

0

ich die localStorage.get/set Artikel Methoden wie unten verwenden. So würde Ihr Dienst aussehen wie

.service('UserService', function() { 

    var getUser = function(){ 
    return JSON.parse(window.localStorage.getItem('user')); 
    }; 


    var setUser = function(user){ 
    JSON.stringify(window.localStorage.setItem('user', user)); 
    }; 

    return { 
    getUser: getUser, 
    setUser: setUser 
    }; 
}) 
+0

Ich hatte das gleiche Ergebnis. Das von der getUser-Funktion zurückgegebene Objekt ist kein lokales Speicherelement, sondern der Prototyp der Funktion JSON.parse. –