@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
@romazhan Автор вопроса
Use cloneNode, it should work:
connectedCallback() {
    return this._shadow.appendChild(this._template.cloneNode(true));
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
13 июн. 2024, в 13:58
5000 руб./за проект
13 июн. 2024, в 13:55
30000 руб./в час
13 июн. 2024, в 13:50
5000 руб./за проект