我用聚合物1(最新版本)加上polymerfire
(最新版本)来显示一个索引列表(我的代码中的seedPosition
属性如下)。在聚合物1中,当我向Firebase添加一个对象时,索引增加1,但是当我将所有内容更新为聚合物2.0预览时,索引增加了整个列表长度。这表明整个对象得到更新,而不是新添加的。排列观察员的聚合物1与聚合物2是否有变化?
我做加载通过凉亭所有元素为#2.0-preview
,并改变了类语法聚合物2(例如,class ClassName extends Polymer.Element {...}
。唯一的变化
<!-- load the firebase array -->
<firebase-query app-name="firebaselogin" path="/exerciseLog" data="{{exerciseLogData}}"></firebase-query>
<template is="dom-repeat" items="{{exerciseLogData}}">
[[tutorValues()]]
</template>
Polymer({
properties: {
seedPosition: {
type: Number,
value: -1
}
}
observers: [
"seedPositionChanged(seedPosition)"
],
tutorValues: function(){
this.set("seedPosition", this.get("seedPosition") + 1);
}
seedPositionChanged: function (seedPosition) {
// Here the seed value gets called exaclty once when adding ONE element to the {{exerciseLogData}} data
}
});
感谢您的链接。但这实际上意味着,列表中的新元素会强制重新绘制整个列表,而不是仅绘制一个新元素。我在这里想一个聊天作为例子。这似乎不是很有效。 –
如果项目更改,'dom-repeat'列表总是重新呈现。你应该看看[iron-list](https://www.webcomponents.org/element/PolymerElements/iron-list)。 – a1626
这不是我所经历的。我在每个dom-repeat对象中使用了一个函数来递增计数器并返回值。对于聚合物1,当向阵列添加1个元素时,计数器增加1。但在聚合物2中,计数器增加的频率与阵列的长度一样多。 –