hinzufügen Ich versuche, Änderungen in einer Vaadin-Combobox (Wert) innerhalb einer Eisen-Datentabelle zu hören.Eventlististen dynamisch auf Vaadin Combobox in Polymer Datatable
Dies ist meine komplette Datentabelle:
<iron-data-table id="grid4" items="[[riskCombined]]" selection-enabled on-selected-items-changed="_selected" >
<data-table-column name="#" width="20px" flex="0">
<template>
<div class="index">[[item]]</div>
</template>
</data-table-column>
<data-table-column name="Risk" width="140px" flex="0">
<template>[[item.name]]</template>
</data-table-column>
<data-table-column name="State" width="100px" flex="0">
<template><vaadin-combo-box value=[[item.state]] items=[[item.settings]] on-value-change="valueChanged" id=combobox[[index]]> </vaadin-combo-box></template>
</data-table-column>
</iron-data-table>
Ich möchte auf Wertänderungen hören:
<data-table-column name="State" width="100px" flex="0">
<template>
<vaadin-combo-box value=[[item.state]] items=[[item.settings]] on-value- change="valueChanged" id=combobox[[index]]> </vaadin-combo-box>
</template>
</data-table-column>
Ich füge einen Eventlistener:
<script>
var combobox = document.querySelector('vaadin-combo-box');
combobox.addEventListener('value-changed', function(event) {
console.log(event.detail.value);
});
combobox.addEventListener('selected-item-changed', function(event) {
console.log(event.detail.value);
});
</script>
auch versucht, mit:
document.getElementById(...)
Das Problem ist, dass der Eventlistener nur der ersten Combobox hinzugefügt wird. Da jedoch mehrere Boxen dynamisch erstellt werden, funktioniert dies nicht. Wie kann ich den Eventlistener dynamisch zu mehreren Comboboxen hinzufügen? Oder gibt es eine andere Lösung?
Edit: versuchte dies:
valueChanged: function(event) {
console.log(event.detail.value);
}
Edit 2:
geänderton-value-change="valueChanged"
zu
on-value-changed="valueChanged"
Jetzt edit1 funktioniert! Aber es feuert bereits wenn die Seite lädt das erste Mal und setzt die Werte der Combobox ...
Ist dies Ihr 'benutzerdefiniertes Element'? Warum hast du so viele "Template" -Tags? Verwenden Sie 'Polymer constructor' in Ihrem Skript? – a1626
Eisen-Datentabelle benötigen diese Syntax .. – simplesystems