【发布时间】:2023-12-04 13:30:01
【问题描述】:
有没有办法将每个单独的元素封装到 shadow dom 中以获得特定的插槽名称?
假设标记看起来与此类似
<custom-element>
<div name="item">item 1</div>
<div name="item">item 2</div>
</custom-element>
目前,渲染类似于:
<custom-element>
<div class="wrap">
<div name="item">item 1</div>
<div name="item">item 2</div>
</div>
</custom-element>
我将如何包装开槽元素以输出类似于:
<custom-element>
<div class="wrap">
<div name="item">item 1</div>
</div>
<div class="wrap">
<div name="item">item 2</div>
</div>
</custom-element>
我目前的(有缺陷的)方法:
customElements.define('custom-element', class MyCustomElement extends HTMLElement {
constructor(...args) {
super(...args);
let shadow = this.attachShadow({mode: open});
shadow.innerHTML = `
<div class="wrap">
<slot name="item"></slot>
</div>
`;
}
});
【问题讨论】:
-
不,您需要编写几行 Javascript 代码来分发元素
标签: javascript html shadow-dom custom-element