Ich versuche, Änderungen an einem Array von Objekten zu beobachten, die an ein Polymerelement übergeben werden. Wenn ein neues Element zum Array hinzugefügt wird, wird das Array auch im Element "Polymer" geändert. Die Beobachtermethode wird jedoch nie aufgerufen.Polymer 1.0 Array-Observer bei Bindungsänderung
Element enthält
<dom-module is="table-container">
<template>
<selectable-table table-items="{{items}}"></selectable-table>
<button on-click="addItem">Add Item</button>
</template>
<script>
Polymer({
is : "table-container",
attached : function() {
this.items = [];
for (var i = 0; i < 3; i++) {
this.push("items", {
numerical: "1",
english: "one"
});
}
},
addItem : function() {
this.push("items", {
numerical: "3",
english: "three"
})
}
})
</script>
</dom-module>
Den Versuch, Veränderungen zu beobachten, hier:
<dom-module id="selectable-table>
<template>
<div>{{tableItems}}</div>
</template>
<script>
Polymer({
is : "selectable-table",
properties : {
tableItems: {
type: Object,
notify: true,
observer: "updateTableItems"
}
}
updateTableItems : function() {
// Updates here
}
});
</script>
</dom-module>
Die „updateTableItems“ Methode zunächst wird aufgerufen, wenn das Element-Array zuerst gefüllt wird, aber nie, wenn die Schaltfläche geklickt wird um weitere Objekte hinzuzufügen.