私は、ポリマー1(最新版)+ polymerfire
(最新版)を使用して、インデックス付きリスト(下のコードにseedPosition
のプロパティ)を表示しました。 Polymer 1では、Firebaseに1つのオブジェクトを追加するとインデックスが1つ増えましたが、すべてをPolymer 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
}
});
リンクありがとうございます。しかし、リスト内の新しい要素は、新しい要素を1つだけ描画するのではなく、リスト全体を強制的に再描画することを意味します。私はここでチャットについて考えています。それは非常に効率的ではないようです。 –
アイテムが変更された場合、 'dom-repeat'リストは常に再レンダリングされます。 [iron-list](https://www.webcomponents.org/element/PolymerElements/iron-list)をご覧ください。 – a1626
それは私が経験したことではありません。私は、カウンタをインクリメントして値を返す各dom-repeatオブジェクトの中の関数を使用しました。ポリマー1では、アレイに1元素を添加すると、カウンターは1増加した。しかしポリマー2では、カウンターはアレイの長さと同じくらい増えた。 –