0

我使用 Polymer 1 (latest version) plus polymerfire(latest version) 来显示一个带有索引的列表(seedPosition下面我的代码中的属性)。在 Polymer 1 中,当我将一个对象添加到 Firebase 时,索引增加了 1,但是当我将所有内容更新到 Polymer 2.0-preview 时,索引增加了整个列表长度。这表明整个对象得到更新,而不是新添加的。

我所做的唯一更改是#2.0-preview通过 bower 加载所有元素,并将类语法更改为 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
  }
});
4

2 回答 2

0

试试[[tutorValues(item)]]。空函数调用只调用一次。

此外,由于您正在观察原始值,因此应在直接设置时调用观察者,例如this.seedPosition = this.seedPosition + 1;

于 2017-02-14T08:27:16.453 回答
0

对您的问题的简短回答是yes。您应该查看内容以了解有关引入的更改列表的更多详细信息。

于 2017-02-11T07:07:53.097 回答