2017-11-17 1 views
0

Ich benutze Angular CLI. Eigentlich habe ich Registrierungskomponent: tsLegen Sie einige Klassenobjekt zu Local Storage

... 
export class User { 
    first_name: string; 
    second_name: string; 
    email: string; 
    password: string; 
} 
... 
export class RegistrationComponent implements OnInit { 
    saveValue(storageValue) { 
    localStorage.setItem(`user`, new User(storageValue.first_name, storageValue.second_name)); 

html

<input type="text" name="first_name" [(ngModel)]="first_name"> 
<input type="text" name="second_name" [(ngModel)]="second_name"> 

So Benutzerobjekt auf einen lokalen Speicher zu setzen Ich versuche, aber es ist ein Fehler: Lieferung Parametern entsprechen keine Unterschrift Rufziel. Ich habe noch tryed:

... 
saveValue(storageValue) { 
     localStorage.setItem(`user`, new User(String(storageValue.first_name), String(storageValue.second_name)); 
... 

und

... 
saveValue(storageValue) { 
     localStorage.setItem(`user`, JSON.stringify(new User(storageValue.first_name, storageValue.second_name)); 
.. 

aber es funktioniert nicht. Könnte mir bitte jemand helfen?

Antwort

0

Sie können eine Zeichenfolge nur für den lokalen Speicher festlegen, daher müssen Sie herausfinden, wie Sie Ihr User Objekt serialisieren/deserialisieren können.

Serialize

localStorage.setItem('user', JSON.stringify({ 
    first_name: storageValue.first_name, 
    second_name: storageValue.second_name 
})); 

Deserialize

const raw = JSON.parse(localStorage.getItem('user')); 
const user = new User(raw.first_name, raw.second_name); 
Verwandte Themen