polymer - 如何引用 Web 组件本身?
问题描述
在 Web 组件内部,我可以使用 CSS 选择器:host
来选择 Web 组件本身。
在 js 中,我可以参考this.shadowRoot
,但不完全是 web 组件。有没有办法在js中引用web组件?
解决方案
在 JavaScript 中,调用者上下文(发生在哪里)以及调用函数的方式(通过 test() 或 new 关键字进行简单调用)定义了函数this,例如:
function test(){
console.log(this);
}
test();//shows window
new test()// creates an brand new object and assign it to test's this
Web 组件(特别是这里的自定义元素部分)定义是由customElements.define完成的,它将创建的元素分配为this,因此您可以在默认情况下在它的每个方法中引用它:
window.customElements.define('test-element', class extends HTMLElement {
constructor() {
super();
this.addEventListener("click", () => {
// this means 'test-element' DOM
});
}
});
推荐阅读
- python-3.x - 使用 imageio.ffmpeg.download() 时出现弃用错误
- java - Hippo-cms、Hippo-essentials、Hippo-site 的使用
- python - 通过 python 脚本发送短信
- excel - Excel向TSV文件添加双引号
- java - 从标签中获取可见文本列表
- java - 基于Java中的第一个迭代变量对嵌套循环元素进行分组
- delete-file - LINUX下不能删除带有特殊字符的文件
- python - SQLAlchemy 插入到表中,将表名作为字符串传递
- javascript - 为什么浏览器刷新和关闭事件检测不适用于 IE 和 Safari
- r - Jupyter Notebook 中的 R 返回以下错误:`丰富显示对象时出错:`