2016-10-19 8 views
2

app-localstorage-documentで値を設定および取得する方法を理解しようとしています。私は鉄-meta要素で前に働いていたので、同じようにそれをやった:
ポリマーでapp-localstorage-documentを操作する方法

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

     }); 

しかし、私はアプリ-のlocalStorage-文書と同様のものをしようとすると、それだけで返します。
約束{[[PromiseStatus]]: "解決済み "、[[PromiseValue]]:undefined}
この要素の操作方法に関する例は見つかりません。多分誰かがここで私を助けることができます。

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

答えて

3

私はまだこの要素を自分自身で研究しています。ドキュメントはすべてそのようなものではありません。これまで私が理解していること。

問題は、ストレージデータへのアクセス方法の変更に関するものです。 app-localstorage-document要素が処理しています。

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

"data"という属性は、 "id"というストレージキーと同期しています。 "id"が更新されるたびに、 "data"に割り当てられた変数が更新されます。これは、キー "id"の変更が変数 "meta"にバブルアップすることを意味します。

ストレージ内の情報にアクセスする必要がある場合は、「メタ」変数でアクセスできる必要があります。

this.meta.name or {{meta.name}} 
this.meta.id or {{meta.id}} 

これは、 "data"に割り当てられた変数がObject型であることを意味します。

meta:{ 
     type:Object, 
     value:{}, 
     notify:true 
} 

この結果、この要素を使用している場合は、ローカルストレージに直接アクセスする必要はありません。それがこの要素のためのものです。

+1

私はそれを試し、すべてがうまくいけば答えを受け入れます。 iron-localstorageを使い終わったのは、使い易いように思えたからです。 – Niklas

+0

私は何かが欠けているに違いない - それはうまくいかなかった。私のページをリロードすると、値はクリアされ、最後に使用された値が表示されます。鉄のローカルストレージが動作します。 – Thad

+0

キーが保存されていない場合、isNew()メソッドを使用して値を初期化する方法はありますか? –

3

基本的な考え方は、メモリ内のデータをlocalStorageに同期させることです。

app-localstorage-documentは、 'data'をlocalStorageまたはsessionStorageに格納します。データの変更はすべてストレージに戻されます。あなたの場合は、{{meta}}オブジェクトを目的の値に設定するだけで済みます。app-localstorage-documentは、ローカルストレージに確実に格納されます。

いつでもメモリ内のデータを扱うことができるため、同じ要素のlocalStorageからデータを読み取ることができない場合があります。しかし、他の要素に格納されたデータを読み取るには、iron-localstorageを使用するか、キーを使用してlocalStorageから直接読み取ることもできます。

関連する問題