我尝试听取在铁数据表内的 vaadin 组合框(值)中所做的更改。
这是我完整的数据表:
<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>
我想听听价值变化:
<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>
我正在添加一个事件监听器:
<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>
还尝试过:
document.getElementById(...)
问题是 Eventlistener 刚刚添加到第一个组合框中。但是由于动态创建了多个框,因此这是行不通的。如何将 Eventlistener 动态添加到多个组合框?还是有其他解决方案?
编辑:试过这个:
valueChanged: function(event) {
console.log(event.detail.value);
}
编辑2:
改变了
on-value-change="valueChanged"
至
on-value-changed="valueChanged"
现在edit1正在工作!但是当页面第一次加载并设置组合框的值时,它已经触发了......