2015-06-22 62 views
2

演示這裏:http://jsbin.com/wiqowo/15/edit?html,output聚合物1.0 - 數據綁定陣列不更新正確

當我循環通過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> 

回答

2

想通了。 1.0中顯然不支持數組變異。您必須致電新的Polymer.push,Polymer.pop等方法。

演示:http://jsbin.com/wiqowo/25/edit?html,output

for (var i=this.data.length; i<10; i++) { 
    this.push('data', 'Item #' + (i+1)); 
} 
0

在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); 
    } 
}); 
+0

不幸的是這並不能真正解決問題。如果我需要修改列表,我必須重新構建,這對於大型數組來說可能非常低效。 –