Polymer 1.0-数据绑定阵列未正确更新

Polymer 1.0-数据绑定阵列未正确更新,polymer,polymer-1.0,Polymer,Polymer 1.0,此处演示: 在下面的示例中,当我循环使用this.data时,它会迭代正确数量的项目,但是不会输出单个项目的值。这是一个错误,还是我遗漏了什么 <dom-module id="test-element"> <template> <h3>data</h3> <p>data: <span>{{data}}</span></p> <ul> <temp

此处演示:

在下面的示例中,当我循环使用
this.data
时,它会迭代正确数量的项目,但是不会输出单个项目的值。这是一个错误,还是我遗漏了什么

<dom-module id="test-element">
  <template>
    <h3>data</h3>
    <p>data: <span>{{data}}</span></p>
    <ul>
      <template is="dom-repeat" items="{{data}}">
        <li>{{item}}</li>
      </template>
    </ul>
  </template>
  <script>
    Polymer({
      ready: function() {
        this.data = ['Item #1', 'Item #2', 'Item #3'];
        for (var i=this.data.length; i<10; i++) {
          this.data.push('Item #' + (i+1));
        }
        console.log(this.data);
      }
    });
  </script>
</dom-module>

数据
数据:{{data}}

  • {{item}}
聚合物({ 就绪:函数(){ this.data=['Item#1','Item#2','Item#3'];
对于(var i=this.data.length;i在ready函数中定义一个数组var,并将数据推送到其中。然后,将其分配给this.data

Polymer({
  ready: function() {
    var localData = ['Item #1', 'Item #2', 'Item #3'];
    for (var i=localData.length; i<10; i++) {
      localData.push('Item #' + (i+1));
    }

    this.data = localData;

    console.log(this.data);
  }
});
聚合物({ 就绪:函数(){ var localData=['Item#1','Item#2','Item#3'];
对于(var i=localData.length;i计算出来了。显然,数组变异在1.0中不受支持。您必须调用新的
Polymer.push
Polymer.pop
等方法

演示:


for(var i=this.data.length;i不幸的是,这并不能真正解决问题。如果需要修改列表,我必须重新构建,这对于大型阵列来说可能非常低效。
for (var i=this.data.length; i<10; i++) {
    this.push('data', 'Item #' + (i+1));
}