2017-03-16 16 views
1

Polymer 2.0で動作するように双方向バインディングを取得するのに問題があるようです。私は物事を最小限に抑え、Polymer.Elementだけを使用しています。コアポリマー2.0は双方向結合をサポートしていますか?

私はparent componentを定義します。私は結果を見

_this['_setResult'](txt); 
_this['result'] = txt; 
_this.notifyPath('result'); 

 class XtalFetch extends Polymer.Element { 
     static get is() { return 'xtal-fetch'; } 
     static get properties() { 
      return { 
       debounceTimeInMs: { 
        type: Number 
       }, 
       reqInfo: { 
        type: Object, 
       }, 
       reqInit: { 
        type: Object 
       }, 
       reqUrl: { 
        type: String, 
        observer: 'loadNewUrl' 
       }, 
       /** 
       * The expression for where to place the result. 
       */ 
       result: { 
        type: String, 
        notify: true, 
        readOnly: true 
       }, 
      }; 
     } 
     loadNewUrl() { 
      debugger; 
     } 
     ready() { 
      if (this.reqUrl) { 
       const _this = this; 
       fetch(this.reqUrl).then(resp => { 
        resp.text().then(txt => { 
         _this['_setResult'](txt); 
         _this['result'] = txt; 
         _this.notifyPath('result'); 
        }); 
       }); 
      } 
     } 
    } 
    elements.XtalFetch = XtalFetch; 
    customElements.define(xtal.elements.XtalFetch.is, xtal.elements.XtalFetch); 

私は私が考えることができるすべてのものをしようとしています注:よう

<dom-module id="example1a-component"> 
    <template> 
    <xtal-fetch req-url="generated.json" result="{{myFetchResult}}"></xtal-fetch> 
    <div>fetch result: 
     <span>{{myFetchResult}}</span> 
    </div> 
    </template> 


    <script> 
    class Example1a extends Polymer.Element{ 
     static get is(){return 'example1a-component'} 
     static get properties(){ 
      return { 
       myFetchResult :{ 
        type: String 
       } 
      } 
     } 
    } 
    customElements.define(Example1a.is, Example1a) 
    </script> 
</dom-module> 

fetch classに見えますfetch要素のresultプロパティに入るフェッチの、親にではなく。

何か間違っていますか?

答えて

2

はい、あります。

ready() { 
    super.ready(); // <-- important! 
    ... 
} 

あなたのコードの作業(demo)を作るのに十分です:あなたがメソッドをオーバーライドしているときsuperを呼び出すようにしてください。

これは忘れやすいので、polymer-linterは最近warn users about thisに更新されました。

関連する問題