2017-04-16 27 views
0



私はカスタムポリマーエレメントに質問があります。まず、単純な用紙入力で要素を作った。私の問題は、この要素を「独立」要素として使用する方法がわかりません。私の例はこのjsfiddleにあります。最初の入力 "asd"を入力し、Enterを押してから2番目の入力 "asd"でEnterを押します。あなたは両方の要素がプロパティ共有していることを、見ることができます

独立した特性を持つ複数のポリマー2要素?

<!doctype html> 
<html> 
    <head> 
    <title>2.0 preview elements</title> 
    <base href="http://polygit.org/polymer+v2.0.0-rc.4/webcomponentsjs+webcomponents+v1.0.0-rc.6/shadycss+webcomponents+1.0.0-rc.2/paper*+polymerelements+:2.0-preview/iron*+polymerelements+:2.0-preview/app*+polymerelements+:2.0-preview/neon*+polymerelements+:2.0-preview/components/"> 
    <script src="webcomponentsjs/webcomponents-lite.js"></script> 
    <link rel="import" href="polymer/polymer.html"> 
    <link rel="import" href="paper-input/paper-input.html"> 
    </head> 
    <body> 

    <input-test></input-test> 
    <input-test></input-test> 

    <dom-module id="input-test"> 
     <template> 
     <paper-input value="{{aValue}}" on-keydown="_keydown"></paper-input> 
     </template> 
     <script> 
     window.addEventListener('WebComponentsReady', function() { 
      class InputTest extends Polymer.Element { 
      static get is() { 
       return 'input-test'; 
      } 

      static get properties() { 
       return { 
       aValue: { 
        type: String, 
        value: '' 
       }, 
       _inputStore: { 
        type: Array, 
        value: [] 
       } 

       }; 
      } 

      _keydown(event) { 
       const keyCode_enter = '13'; 
       if (event.keyCode == keyCode_enter) { 
        console.log(this._inputStore.indexOf(this.aValue)) 
        this.push('_inputStore', this.aValue); 
       } 
      } 
      } 
      customElements.define(InputTest.is, InputTest); 
     }) 

     </script> 
    </dom-module> 
    </body> 
</html> 



私は何ができるか、持っている(コンソールログを「-1」、「1」になり、アレイと第二のログには見られません)独立した特性?

ありがとうございます!

答えて

1

答えが見つかりました。

問題は、配列のデフォルト値の宣言です。

_inputStore: { 
    type: Array, 
    value: function() { 
     return []; 
    } 
} 

このコードはこの問題を解決します。

関連する問題