编程语言
首页 > 编程语言> > javascript – 具有动态id值的聚合物自动节点查找

javascript – 具有动态id值的聚合物自动节点查找

作者:互联网

如何通过id使用Polymer节点查找来访问具有动态id值的节点?

例如

<template>
    <div id="{{ id }}"></div>
</template>

并在js

Polymer("my-element", {
    ready: function() {
        if (!this.id) {
            this.id = 'id' + (new Date()).getTime();
        }

        console.log(this.$.id); // this part needs to find my div element
    }
});

解决方法:

确实可以使用任一点访问JavaScript哈希.或array []表示法.如果你有一个文字名称,你可以使用点符号.$.ome_id.如果你有一个间接,比如this.id =’some_id’,那么你可以使用数组表示法.$[this.id]找到相同的值.

棘手的部分是Polymer只在第一次标记模板后填充$数组,这在准备好之前就已经发生了.如果你有一个与this.id的外部绑定,这个.$.[this.id]会起作用,但是因为你准备好了这个.id为了便利而为时已晚.

在这种情况下,您可以直接查询shadowRoot:

this.shadowRoot.querySelector(‘#’this.id)

专业提示:在某些时候,子类可能会提供一个新模板,在这种情况下,this.shadowRoot将指向新的shadow-root而不是超类版本.出于这个原因,最好安装一个可以查询的命名div,例如这个.$.id_div.querySelector(‘#’this.id’).

标签:javascript,polymer
来源: https://codeday.me/bug/20190927/1822580.html