2017-07-29 59 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()'被一次调用两次。所以,不是一个好的实现。 –

相关问题