Can i use : template
En 2008, J. Resig écrivait un post JavaScript Micro-Templating.
Pour résumer, on écrit un Template sous la forme
- <script type="text/html" id="user_tmpl">
- <% for ( var i = 0; i < users.length; i++ ) { %>
- <li><a href="<%=users[i].url%>"><%=users[i].name%></a></li>
- <% } %>
- </script>
La transformation sera sous la forme :
- var p=[];for ( var i = 0; i < users.length; i++ ) {p.push('
- ' + users[i].name + ' ');
}
p.join(';');
Balise template
Aujourd'hui, la balise template existe. Le contenu de la balise n'est pas visible.
Son manipulation en JS est simple.
- Clonage du template
- Modification du clone
- Ajout dans le DOM
HTML :
JS
const myTemplate = document.querySelector('#myTemplate');- const clone = myTemplate.content.cloneNode(true);
- clone.querySelector('img').src = `https:/.....jpg`;
- document.body.appendChild(clone);
En action
https://jsbin.com/sazaqex/1/edit?html,css,js,console,output
Pour aller plus loin (le code de l'exemple devrait être réécrit en es6,)
https://jsbin.com/remosid/1/edit?html,js,output
Ref : http://www.w3.org/TR/html5/scripting-1.html#template-contents