2017-07-29 20 views
0

私はapp-localstorage-documentでキーが空であるかどうかを調べる方法を理解しようとしています。以前はiron-localstorageを使用しましたが、その中にはキーが空のときに呼び出されるイベントon-iron-localstorage-load-emptyがありました。app-localstorage-documentの前に鍵が保存されているかどうかを確認する方法は?

私はiron-localstorage次のコードを使用:どこかから呼び出されるzeroValue()ニーズ

<app-localstorage-document key="CatValue" data="{{cat}}"></app-localstorage-document> 

class MyApp extends Polymer.Element{ 
    static get is(){return 'my-app';} 
    static get properties(){ 
    return{ 
     cat:{ 
     type: String, 
     value: "" 
     } 
    }; 
    } 

    zeroValue(){ 
    this.set('cat',"a cat"); 
    } 
} 

しかし、Iドン:私はアプリ-のlocalStorage-文書を使用して、以下を試してみました

<iron-localstorage name="my-app-storage" value="{{cat}}" on-iron-localstorage-load-empty="initializeDefaultCat" on-iron-localstorage-load="loadCatFromLocal"></iron-localstorage> 

initializeDefaultCat(){ 
    //some code to initialize the key 
} 

loadCatFromLocal(){ 
    //some code to load the key when webpage opens 
    // and manipulate the data as per requirement 
} 

をそれをどこから呼び出すかはわからない。 iron-localstorageの場合、イベントを使用してコンポーネントタグ自体から関数が呼び出されましたが、app-localstorage-documentにそのようなイベントはありません。私がしたいのは、キーが初めて格納されているとき、またはキーが空のときにキーを初期化し、ページのロード時にキーをロードして、アプリの要件に従ってデータを操作することだけです。

答えて

0
static get properties(){ 
    return{ 
    cat:{ 
     type: String, 
     value: "a cat" 
     observer: "zeroValue", 
    } 
    }; 
} 

zeroValue(newValue){ 
    if (newValue) { this.set('cat', newValue; }  
    else   { this.set('cat',"a cat"); } 
} 

私は自分で要素を使用していません。 localStorageのキーが存在しない場合、valueはnullを返しますか?そうでない場合は、zeroValueメソッドが不要で、代わりにデフォルト値を設定します。

+2

期待どおりに動作しません。 'zeroValue()'は一度に2回呼び出されます。したがって、良い実装ではありません。 –

関連する問題