2016-10-19 2 views
2

arbeiten Ich versuche herauszufinden, wie Sie einen Wert im App-LocalStorage-Dokument festlegen und abrufen. Ich arbeitete, bevor sie mit dem Eisen-Meta-Element und tat es in etwa so:
Wie mit App-LocalStorage-Dokument in Polymer

 <iron-meta id="meta" key="id" value="{{meta}}"></iron-meta>   

     Polymer({ 
     is: 'login-form', 
     properties: { 
      meta: { 
      type: String, 
      value: '' 
      }, 
     }, 

     getValue: function() { 
      this.meta = '100' 
      var savedValue = this.$.meta.byKey('id'); 
      console.log(savedValue); 
     } 

     }); 

Aber wenn ich etwas ähnliches mit der App-localstorage-Dokument versuchen Sie es einfach zurück:
Versprechen {[[PromiseStatus]]: " aufgelöst ", [[PromiseValue]]: undefined}
Ich kann kein Beispiel finden, wie man mit diesem Element arbeitet. Vielleicht kann mir hier jemand helfen.

 <app-localstorage-document id="meta" key="id" data="{{meta}}" storage="window.localStorage"></app-localstorage-document> 

     Polymer({ 
      is: 'login-form', 
      properties: { 
      meta: { 
       type: String, 
       value: '' 
      }, 
      }, 

      getValue: function() { 
      this.$.meta.setStoredValue('id', '50'); 
      var savedValue = this.$.meta.getStoredValue('id'); 
      console.log(savedValue); 
      } 
     }); 

Antwort

3

Ich studiere dieses Element noch selbst. Die Dokumentation ist nicht so direkt. Das verstehe ich bisher.

Das Problem besteht eher darin, die Art und Weise zu ändern, in der Sie über den Zugriff auf die Speicherdaten nachdenken. Das Element app-localstorage-document verarbeitet es für Sie.

<app-localstorage-document id="meta" key="id" data="{{meta}}" storage="window.localStorage"></app-localstorage-document> 

Das Attribut "Daten" wird mit dem Speicherschlüssel von "ID" synchronisiert. Jedes Mal, wenn "id" aktualisiert wird, wird die Variable, die "data" zugewiesen ist, aktualisiert. Dies bedeutet, dass in diesen Änderungen der Schlüssel "id" in die Variable "meta" übergeht.

Wenn Sie auf Informationen im Speicher zugreifen müssen, sollte in der "Meta" -Variable zugegriffen werden können.

Dies würde bedeuten, dass die Variable, die "data" zugewiesen ist, vom Typ Object sein sollte.

Wenn Sie dieses Element verwenden, besteht daher kein Grund, direkt auf den lokalen Speicher zuzugreifen. Dafür ist dieses Element zuständig.

+1

Ich werde das versuchen und dann Ihre Antwort akzeptieren, wenn alles funktioniert. Ich endete mit der Eisen-Localstorage, weil es einfach einfacher zu bedienen schien. – Niklas

+0

Ich muss etwas verpassen - es hat nicht funktioniert. Wenn ich meine Seite neu geladen habe, wurden die Werte gelöscht, während die zuletzt verwendeten Werte angezeigt wurden. Eisen-lokale Speicherarbeiten. – Thad

+0

Wie benutze ich die isNew() Methode, um den Wert zu initialisieren, wenn der Schlüssel vorher nicht gespeichert wurde? –

3

Die Grundidee besteht darin, In-Memory-Daten mit localStorage zu synchronisieren.

app-localstorage-document speichert die 'Daten' in localStorage oder sessionStorage. Jede Änderung der Daten fließt zurück in den Speicher. In Ihrem Fall müssen Sie nur das Objekt {{meta}} mit den gewünschten Werten festlegen, und app-localstorage-document stellt sicher, dass es im lokalen Speicher gespeichert wird.

Da Sie immer mit In-Memory-Daten arbeiten können, lesen Sie möglicherweise nicht die Daten von localStorage im selben Element. Um jedoch die gespeicherten Daten in anderen Elementen zu lesen, können Sie Eisen-Localspeicher verwenden oder sogar direkt von localStorage mit dem Schlüssel lesen.