Polymer 1.0 Array Beobachter auf Verbindliche Ändern
Ich versuche, den Wandel zu beobachten, um ein array von Objekten übergeben wird, um ein Polymer-element. Wenn ein neues Element Hinzugefügt, um das array, das array wird auch geändert in der Polymer-element. Doch die Beobachter-Methode niemals aufgerufen wird.
Element Enthalten
<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>
Beobachten, änderungen 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>
Den "updateTableItems" - Methode aufgerufen wird, ist auf den ersten, wenn die items-array ist erstmal aufgefüllt, aber nie, wenn die Schaltfläche geklickt wird, um weitere Objekte hinzufügen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beobachten von änderungen in das array verwenden Sie die folgenden Stil von Beobachtern.
Weil
tableItems
ist ein array von Objekten, die Sie verwenden sollten, geben SieArray
in Ihrer Eigenschaft Erklärung. Die Art der Beobachter, die Sie verwenden, wird nur auslösen, wenn Sie zuweisen eine neue array-Instanz, bei dertableItems
Eigenschaft. Für Manipulationen des Arrays fügen Sie einen Rückruf zuobservers
. Sie finden weitere details in der docs.