2017-09-11 2 views
1

Ich bin ein erster Student der Ionic-Plattform, und offensichtlich habe ich einige Probleme mit einem kleinen Stück meiner ersten Anwendung. Ich möchte einen einfachen Zähler in einer Schaltfläche haben: wenn diese Schaltfläche angeklickt wird, erhöht sich der Zähler um 1. Dann speichere ich den Wert mit dem Speicher und ich erhalte den gleichen Wert auf einer anderen Seite mit "storage.get".Ionic Storage und Variablen

Dies ist der Code:

constructor(public storage:Storage, public platform: Platform){ 
    this.storage = storage; 
    } 

    ionViewDidLoad() { 
    console.log("I'm alive!"); 
    this.counter = this.storage.get("Count").then((data)=>{ 
     console.log(data); 
    }); 
    } 

    public counter = 0; 

    count(){ 
     this.counter+=1; 
     this.storage.set("Count",this.counter); 
    } 

Wenn ich die App wieder zu öffnen, ich versuche, den gespeicherten Wert zu verwenden, um den Zähler weiter zu erhöhen, aber es geht wieder von 0: wie kann ich die Schrittweite Variable des Zählers mit dem gespeicherten Wert?

Vielen Dank für Ihre Unterstützung!

+0

Wenn Sie den Wert von Count erhalten, protokollieren Sie ihn nur auf der Konsole. Haben Sie versucht, den Wert von counter .... "this.counter = data;" in der dann Funktion? Anstelle von console.log (Daten). –

+0

Entschuldigung, ich habe den falschen Code eingefügt: ja, ich habe versucht, "this.counter = data" zu schreiben, aber wenn ich die Anwendung mit "ionic serve" teste, wird dieser Fehler angezeigt: "" Type promise ist nicht Zuweisbar zu Typ 'Nummer' " –

+0

Ok, ich habe meinen Fehler gefunden: Jetzt funktioniert es. Danke für Ihre Hilfe trotzdem! –

Antwort

0

Sie setzen diesen.counter auf den Versprechen Anruf.

Tun Sie dies statt:

this.storage.get("Count").then((data)=>{ 
    this.counter = data; 
}); 

Auch, wenn Sie eine Injektion eine öffentliche im Konstruktor deklarieren, müssen Sie nicht es in den Konstruktor wieder einzustellen. Es steht automatisch mit der Instanz der Klasse zur Verfügung. Im Grunde brauchen Sie das nicht.

this.storage = storage; 
+0

Danke für den Hinweis! –

Verwandte Themen