2017-10-12 13 views
0

私は別のテンプレートファイル(html)を持っています。私はこれがメインページに複数回HTMLオブジェクトを生成しロードする必要があるので、私は次のことを実行します。HTMLElementはDOMに追加されません。どうして?

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); 

まず、関数は、ファイルからコンテンツを取得し、現在のDOMに追加します。戻り値として、追加されたHTMLElementオブジェクトを返します。

このオブジェクトをもう一度追加しようとすると、document.body.appendChild()関数を使用して標準的な方法を使用していますが、現在のDOMには1つのテンプレートオブジェクトしか表示されません。

+0

を?その後、すべてが期待通りに機能します。同じオブジェクトを2度追加することはできず、複製されることを期待します。 2つの要素が必要な場合は、2つ目の要素を作成する必要があります。 Appendingは、以前DOMになかった場合にのみDOMに新しいオブジェクトを追加します。それをもう一度追加するだけで、DOM内の位置が変更されます。 – Xufox

+0

作成したテンプレートを複製する機能はありますか? – Jack

答えて

2

子を追加するだけで、あなたのオブジェクトが最後に置き換えられます。 あなたがこののcloneNodeを

ソート使用する必要があります:右、だから、_one_ `HTMLElement`が追加さ_is_

document.body.appendChild(template); 
document.body.appendChild(template.cloneNode(true)); 
関連する問題