2017-10-12 3 views
0

J'ai le fichier modèle séparé (html). Je dois charger ce produit objet HTML à la page principale à plusieurs reprises, donc je fais la chose suivante:HTMLElement n'est pas ajouté au DOM. Pourquoi?

const path = "/templates/news.tpl.html"; 
const template = await Dbc.Dom.loadTemplate({ 
    id : "news-block", 
    path: path 
}); 

document.body.appendChild(template); 
document.body.appendChild(template); 

Tout d'abord, la fonction va chercher le contenu du fichier et l'ajouter à la DOM actuelle. En tant que valeur de retour, il renvoie l'objet HTMLElement ajouté.

J'essaie d'ajouter cet objet après cela, puis j'utilise la méthode standard, via la fonction document.body.appendChild(), mais je ne peux voir que l'objet modèle unique dans le DOM actuel.

+0

Alors _one_ 'HTMLElement' _is_ ajouté, non? Ensuite, tout fonctionne comme prévu. Vous ne pouvez pas ajouter le même objet deux fois et attendre qu'il soit dupliqué. Si vous voulez deux éléments, vous devez en créer un second. L'ajout ne fait qu'ajouter un nouvel objet au DOM s'il ne l'était pas auparavant. L'ajouter à nouveau modifie simplement sa position dans le DOM, voire pas du tout. – Xufox

+0

Comment créer un autre objet, y a-t-il une fonction pour cloner le modèle créé? – Jack

Répondre

2

Ajouter un enfant remplace simplement votre objet, si vous essayez quelques fois votre objet apparaîtra dans une dernière place. Vous devez utiliser cloneNode

sorte de ceci:

document.body.appendChild(template); 
document.body.appendChild(template.cloneNode(true));