2016-10-19 2 views
2

app-localstorage-document에서 값을 설정하고 검색하는 방법을 알아 내려고합니다. 나는 철 - 메타 요소와 전에 일한과 같이 그것을했다 :
폴리머로 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); 
     } 

     }); 

하지만이 앱 로컬 스토리지-문서와 유사한 무언가를하려고 할 때 그냥 반환
약속 {[[PromiseStatus]] " 해결 된 ", [[PromiseValue]] : 정의되지 않음}
이 요소로 작업하는 방법에 대한 예제를 찾을 수 없습니다. 어쩌면 누군가 나를 도와 줄 수 있습니다.

 <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은 localStorage 또는 sessionStorage에 'data'를 저장합니다. 데이터가 변경되면 저장소로 다시 이동합니다. 귀하의 경우, {{meta}} 객체를 원하는 값으로 설정하기 만하면 app-localstorage-document이 로컬 저장소에 저장됩니다.

메모리 내 데이터로 항상 작업 할 수 있으므로 동일한 요소의 localStorage에서 데이터를 읽을 수 없습니다. 그러나 다른 요소에 저장된 데이터를 읽으려면 iron-localstorage을 사용하거나 키를 사용하여 localStorage에서 직접 읽을 수도 있습니다.