我使用Polymer 1(最新版本)加上polymerfire
(最新版本)来显示带有索引的列表(我的代码中的seedPosition
属性)。在Polymer 1中,当我向Firebase添加一个对象时,索引加1,但是当我将所有内容更新为Polymer 2.0-preview时,索引增加了整个列表长度。这表明整个对象得到了更新,而不是新添加的。
我做的唯一更改是通过bower将所有元素加载为#2.0-preview
,并将类语法更改为Polymer 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
}
});
答案 0 :(得分:0)
您的问题的简短回答是yes
。您应该查看this,了解有关已引入的更改列表的更多详细信息。
答案 1 :(得分:0)
试试[[tutorValues(item)]]
。空函数调用只调用一次。
此外,由于您正在观察原始值,因此在直接设置观察者时应该调用它,例如this.seedPosition = this.seedPosition + 1;