Polymer 1.0 - 数据绑定数组未正确更新
Polymer 1.0 - data-bound arrays not updating correctly
此处演示:http://jsbin.com/wiqowo/15/edit?html,output
当我在下面的示例中循环 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>
在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);
}
});
想通了。显然 array mutation 在 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));
}
此处演示:http://jsbin.com/wiqowo/15/edit?html,output
当我在下面的示例中循环 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>
在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);
}
});
想通了。显然 array mutation 在 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));
}