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

Как отрисовать шаблон в custom element при повторной вставке на страницу?

class MyCustomElement extends HTMLElement {
    constructor(template) { super();
        this._template = template;
        this._shadow = this.attachShadow({mode : 'open'});
    }

    connectedCallback() {
        return this._shadow.appendChild(this._template);
    }
}

window.customElements.define('my-element', MyCustomElement);

Если первый раз вставить на страницу, то шаблон отрисуется:
document.body.appendChild(document.createElement('my-element'));

Но если удалить и вставить заново, то теневое дерево окажется пустым. Как отрисовывать шаблон при повторной вставке на страницу?
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Сложный Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
@romazhan Автор вопроса
Use cloneNode, it should work:
connectedCallback() {
    return this._shadow.appendChild(this._template.cloneNode(true));
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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