Задать вопрос
@egyptForce

Как получить слоты в веб-компонентах?

Могу ли я как-нибудь получить все слоты в компоненте? По аналогии с Vue.js this.$slots

<my-paragraph><span>foo</span></my-paragraph>
<my-paragraph><span slot="foo">bar</span></my-paragraph>

<template>
  <slot name="foo"></slot>
  <slot></slot>
</template>


class MyParagraph extends HTMLElement {
  constructor() {
    super();
    
    this
      .attachShadow({mode: 'open'})
      .appendChild(
        document.querySelector('template').content.cloneNode(true)
      );
    
    console.log(this.slots); // undefined
  }
}

customElements.define('my-paragraph', MyParagraph)
spoiler
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
this.shadowRoot.querySelectorAll('slot')
А затем, у каждого слота - slot.assignedNodes()
Больше - здесь
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы