相关疑难解决方法(0)

如何在连接所有子自定义元素时使用'connectedCallback'

我正在使用Web Components v1.

假设有两个自定义元素:

家长element.html

<template id="parent-element">
    <child-element></child-element>
</template>
Run Code Online (Sandbox Code Playgroud)

儿童element.html

<template id="child-element">
<!-- some markup here -->
</template>
Run Code Online (Sandbox Code Playgroud)

我试图在连接时使用connectedCallbackin parent-element初始化整个父/子DOM结构,这需要与定义的方法进行交互child-element.

但是,似乎child-element没有正确定义当时connectedCallback被解雇customElement:

家长element.js

class parent_element extends HTMLElement {
    connectedCallback() {
        //shadow root created from template in constructor previously
        var el = this.shadow_root.querySelector("child-element");
        el.my_method();
    }
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它el是一个HTMLElement而不是child-element预期的.

parent-element的模板中的所有子自定义元素都已正确附加后,我需要回调.

这个问题的解决方案似乎不起作用; this.parentElementnull里面child-element connectedCallback().

ilmiont

html javascript web-component native-web-component

15
推荐指数
3
解决办法
1562
查看次数

在调用“disconnectedCallback”之前,是否可以多次调用自定义元素的“connectedCallback”?

规范

但是,请注意,connectedCallback 可以被多次调用,因此任何真正一次性的初始化工作都需要一个防护来防止它运行两次。

这是什么意思?是不是说在调用connectedCallback之前可以(由浏览器引擎)调用多次?disconnectedCallback

如果总是有一个connectedCallback对应一个disconnectedCallback,那么这种说法就毫无意义了。

显然,我会清理在connectedCallback中创建的任何内容disconnectedCallback,因此我不会让事情“运行两次”。

html javascript web-component custom-element

6
推荐指数
1
解决办法
3915
查看次数