Witam, uczę się js i chciałbym pobrać liste użytkowników za pomocą fetch api, następnie dodawać do html po kolei każdego użytkownika po kliknięciu w button. Nie rozumiem dlaczego createUser() wykonuje się tylko raz. Mogę dodać tylko 1 użytkownika po kliknięciu w button. Proszę o jakieś wskazówki.
function createUser(){
let usersTab = [];
let tabTemplateUser = [];
let tmp = 0;
const userWrap = document.getElementById('userWrap');
const addUserBtn = document.getElementById('addUser');
function setUserTab(tab){
usersTab = tab;
}
function makeTemplate(){
usersTab.forEach(user =>{
let template = `
<div class="userBox" style="margin-top:20px;">
<h2>Nazwa: ${user.name}</h2>
<h2>Nazwa użytkownika: ${user.username}</h2>
<h2>Email: ${user.email}</h2>
</div>`
tabTemplateUser.push(template);
})
}
function addUser(){
userWrap.innerHTML += tabTemplateUser[tmp]
tmp++
}
fetch("https://jsonplaceholder.typicode.com/users")
.then(resp => resp.json())
.then(json => setUserTab(json))
.then( () => makeTemplate())
.then( () => addUser())
.catch(function (error) {
console.log('Request failed', error);
});
}
const addUserBtn = document.getElementById('addUser');
addUserBtn.addEventListener('click', createUser)
addUser
nie znajduje się przypadkiem wewnątrzuserWrap
, prawda?