我尝试将一个eventlistener添加到一些动态创建的元素中,但我不能将它们作为目标。
//here is how I try to access it
_buildTable(data)
{
this.$.spinner.style.display = 'none';
this.tableHead = Object.keys(data[0]);
this.tableData = data;
this._test();//It is called theorically after that the data has been filled
}
_test()
{
var link = this.shadowRoot.querySelectorAll(".link");
//var link = Polymer.dom(this.root).querySelectorAll(".link"); //tried this but i think it is Polymer 1.x style
//var link = document.querySelectorAll(".link"); // I tried this
console.log(link);
}

<!-- Here is the HTML dom-repeat -->
<tbody>
<template is="dom-repeat" items="{{tableData}}" as="data">
<tr>
<td class="link">{{data.id_Mission}}</td>
<td>{{data.nom}}</td>
<td>{{data.resume}}</td>
</tr>
</template>
</tbody>
&#13;
每个人都有一个美好的夜晚/晚上
答案 0 :(得分:1)
您在保存_test
后正在调用tableData
,但是这些元素不会被标记到页面中,因为执行线程将转到您正在调用的方法,并且实际将呈现他们什么时候可以。要确认这是否是问题,请尝试&#34;发送到后台&#34;你的方法调用,让它延迟调用,但是尽快&#34;,但是使用setTimeout。
所以你的方法是:
_buildTable(data)
{
this.$.spinner.style.display = 'none';
this.tableHead = Object.keys(data[0]);
this.tableData = data;
setTimeout(() => {
this._test();
});
}