2017-01-07 21 views
1

app-localstorage-documentを使用して、配列プロパティを持つ要素とローカルストレージを同期させます。これを行う最善の方法は何ですか?app-localstorage-documentはオブジェクトのみをサポートし、データプロパティにバインドする配列はサポートしません。ポリマーアプリケーションの格納と格納

  • 独自のapp-localstorage-document実装を実装する必要がありますか?
  • 配列をオブジェクトにラップして戻す別のメカニズムを使用できますか?例えば

:アイデア

ありがとう!

答えて

1

ローカルストレージはキー値データベースであるため、このようなデータベースにはキーなしで配列を格納することはできません。あなたの配列を格納したい場合、あなたはあなたの配列からオブジェクトを構築するために計算されたプロパティを使用することができます。

objectToStore: { 
    type: Object, 
    computed: 'computeObject(myArray.splices)' 
} 

そして、あなたのコンピューティング機能でオブジェクトを生成します。

computeObject: function(){ 
    return { 
    someKey: this.myArray 
    } 
} 

そしてobjectToStoreをバインドをapp-localstorage-document要素に追加します。

+1

問題はapp-localstorage-documentバインディングが2方向(上下)に動作するため、プロパティが計算されたプロパティにバインドするときのように読み取り専用であってはいけません。 –

+0

はい、あなたは正しいです。 –

0

問題は配列の記憶域のようではありませんでした。私は、fixtureを使ってセットアップでPolymerテストでapp-local-storageを使用しました。セットアップ(async)は、app-local-storageが完全に初期化されるまで待たずに、副作用を引き起こしました。 "getStoredValue(...)"への呼び出しを追加し、この呼び出しで同期させることは回避策のようです。