2017-07-29 111 views
0

我想弄清楚如何檢查app-localstorage-document中是否有空的鍵。早些時候,我使用了iron-localstorage,其中有一個事件on-iron-localstorage-load-empty,當密鑰爲空時調用該事件。如何檢查一個密鑰是否已經存儲在app-localstorage-document之前?

我用下面的代碼iron-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 
} 

我嘗試使用下面的APP-localStorage的文檔:

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

zeroValue()需要從地方,但,我不被調用不知道從哪裏調用它。在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()'被一次調用兩次。所以,不是一個好的實現。 –

相關問題