我用聚合物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中,計數器增加的頻率與陣列的長度一樣多。 –