使用数据绑定时,声明的属性被多次初始化

时间:2015-11-22 23:48:36

标签: javascript html data-binding polymer web-component

聚合物v1.2.3

我遇到了Polymer的一个问题,我不确定它是否是一个bug。

我有这个属性,我需要在ready回调中使用它后设置为null,但是当我通过数据绑定初始化属性时,属性会在之后重新初始化我把它设置为null。

采用以下示例:

代理elm.html

<dom-module id="proxy-elm">
  <template>
    <x-foo it="[[prox]]"></x-foo>
  </template>
  <script>
    Polymer({
      is: 'proxy-elm',
      properties: {
        prox: String
      }
    });
  </script>
</dom-module>

的x foo.html

<dom-module id="x-foo">
  <template>
    <div>...</div>
  </template>
  <script>
    Polymer({
      is: 'x-foo',
      properties: {
        it: String
      },
      ready: function () {
        //some processing stuff
        console.log(this.it);
        this.it = '';
        setTimeout(function () {
          console.log("later -- " + this.it);
        }.bind(this), 3000);
      }
    });
  </script>
</dom-module>

main.html中

<proxy-elm prox="hi"></proxy-elm>

控制台

=>hi
=>
=>later -- hi

只有在代理元素使用数据绑定时才会出现此问题。如果我将代理元素集it设置为立即数,则控制台如下所示:

=>hi
=>
=> later -- 

这是所需的行为。

这是怎么回事?我疯了!

0 个答案:

没有答案