【发布时间】:2021-06-03 20:23:46
【问题描述】:
我有一个看起来像这样的自定义元素:
class RepeatMe extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' });
let slot = document.createElement('slot');
slot.setAttribute('name', 'bar');
this.shadowRoot.append(slot);
slot = document.createElement('slot');
slot.setAttribute('name', 'content');
this.shadowRoot.append(slot);
slot = document.createElement('slot');
slot.setAttribute('name', 'bar');
this.shadowRoot.append(slot);
}
}
window.customElements.define('repeat-me', RepeatMe);
我的使用方法如下:
<repeat-me>
<div slot="bar">I'm a bar</div>
<div slot="content">I'm some content</div>
</repeat-me>
我想在shadow dom中重复槽bar(因为开头和结尾的内容相同),但我得到的是只有第一个槽被渲染,第二个是空的。我试图用影子 dom 插槽做的事情是否可行,或者你知道一些方法来实现这样的事情吗?
【问题讨论】:
标签: javascript web-component shadow-dom custom-element slot