Я пытаюсь понять новые пользовательские элементы HTML.
Моя цель, учитывая некоторый массив данных, создать n экземпляров пользовательского элемента.Например, учитывая список из 10 пользователей, создайте 10 пользовательских html-объектов.
Хорошо, поэтому я определяю пользовательский элемент в html
HTML
<template-user>
<div class="user-name"></div>
</template-user>
Затем я создаю свой контроллер
JS
class UserTemplate extends HTMLElement {
constructor(){
super();
this.username = this.querySelectorAll('[class="user-name"]')[0];
}
setName(name){
this.username.innerHtml = name;
}
}
customElements.define('template-user', UserTemplate);
Страница загружается нормально, но теперь я не понимаю, как использовать повторно этот элемент.Если бы я занимался обычными вещами старой школы, у меня был бы цикл, откачивающий некоторые строки HTML и устанавливающий что-то innerHTML.Но сейчас я бы предпочел сделать что-то вроде
for(let i = 0; i < users.length; i++){
let userTemplate = new UserTemplate();
userTemplate.setName(user.name);
// append to user list, etc..
}
Когда я пытаюсь это сделать, кажется, что это почти работает.Но он не может найти username
, то есть this.querySelectorAll
вернет ноль.Это только когда я пытаюсь создать новый экземпляр этого элемента.Как тогда я должен создавать новые объекты DOM пользовательских элементов?