wor*_*hit 12 javascript polymer
如何通过id使用Polymer节点查找来访问具有动态id值的节点?
例如
<template>
<div id="{{ id }}"></div>
</template>
Run Code Online (Sandbox Code Playgroud)
并在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
}
});
Run Code Online (Sandbox Code Playgroud)
Sco*_*les 19
确实可以使用点.或数组[]表示法访问JavaScript哈希.如果您有文字名称,则可以使用点表示法this.$.some_id.如果您有间接,this.id = 'some_id'那么您可以使用数组表示法this.$[this.id]来查找相同的值.
棘手的部分是聚合物仅$在第一次标记模板之后才填充数组,这在之前发生过ready.如果你有一个外部的结合this.id,this.$.[this.id]将工作,但因为你是设置this.id在ready为时已晚了$方便.
在这种情况下,您可以直接查询shadowRoot:
this.shadowRoot.querySelector('#' + this.id)
专业提示:在某些时候,子类可能会提供一个新模板,在这种情况下,this.shadowRoot将指向新的shadow-root而不是超类版本.出于这个原因,最好安装一个可以查询的命名div,例如this.$.id_div.querySelector('#' + this.id').
您可以$像哈希一样使用:
id = 'computed_element_id';
this.$[id];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3766 次 |
| 最近记录: |