我正在尝试将项目推送到Polymer中的数组。 this.request
在dom-repeat
模板中,并且在DOM中正确显示。但是,当我登录this.request
时,它表明最后一个条目覆盖了所有以前的条目。
例如,如果我按1,2,3,4
作为说明,则dom-repeat
将是准确的,但是当我登录this.request
时,它将显示4,4,4,4
。
<ul id="products">
<template is="dom-repeat" items="[[request]]" restamp="true">
<li>
<p>[[item.description]]</p>
</li>
</template>
</ul>
...
request: {
type: Object,
value: []
},
productData: {
type:Object,
value: {}
}
...
addItemToList() {
this.push('request', this.productData);
}
尝试解决this.set
不会产生DOM更新,并且数组索引仍然会被覆盖。
addItemToList() {
let i = 'request.' + this.request.length;
this.set(i, this.productData)
}
问题似乎是由于推送对象而不是字符串引起的,可以将对象作为数组索引推送吗?
可以使用什么方法使它们保持同步?
答案 0 :(得分:0)
您可以按照说明将对象推入数组。我不明白您是如何产生productData
的,但我尝试说明以下示例:
addItemToList() {
this.productData = {description:this.request.length}
this.push('request', this.productData);
console.log(this.request)
}
您可以在演示链接上看到更多详细的代码。