Задать вопрос
@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'));

Но если удалить и вставить заново, то теневое дерево окажется пустым. Как отрисовывать шаблон при повторной вставке на страницу?
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Сложный Комментировать
Решения вопроса 1
@romazhan Автор вопроса
Use cloneNode, it should work:
connectedCallback() {
    return this._shadow.appendChild(this._template.cloneNode(true));
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
18 янв. 2025, в 09:18
5500 руб./за проект
18 янв. 2025, в 07:20
50000 руб./за проект
18 янв. 2025, в 03:12
1000 руб./за проект