2017-02-21 5 views
5

htmlテンプレート文字列をHTML要素に変換するために、プレーンな古いバニラのjavascript(sansフレームワーク)を使用する方法はありますか?vanilla javascriptを使用してes6テンプレート文字列をhtml要素に変換します。

function renderBody(selector = body, template) { 
    const prop.text = 'foobar'; 
    const templateString = `<div id='test'>${prop.text}</div>` 
    const test = document.createElement('div'); 
    test.innerHTML = templateString; 
    document.querySelector(selector).appendChild(test); 
} 

この実装は動作しますが、それはinnerHTMLプロパティを使用して、DIVを包み、余分なを追加します。ここでは

は私が試したものをしたものです。余分なものなしでそれを行う方法がdiv

+1

なぜあなただ​​けの.appendChild(templateString)とは – Steveo

+0

それともが行う「試験」の参照を削除しない 'のconstテスト=のdocument.createElementそして、それは私が探していたものです( 'div'); test.innerHTML = prop.text; '文字列補間は必要ありません... –

+0

' prop.text'に任意のhtmlを含めることはできますか? – Bergi

答えて

8

あなたはinsertAdjacentHTMLを使用することができます。

function renderBody(selector = 'body', template) { 
 
    const prop = { text: 'foobar' }; 
 
    const html = `<div id='test'>${prop.text}</div>`; 
 
    document.querySelector(selector).insertAdjacentHTML('beforeend', html); 
 
} 
 

 
renderBody();
div { border: 1px solid }
<h1>test</h1>

テンプレート文字列である変数のようなものがないので、私は、変数templateStringその文字列を呼び出すことはありません。テンプレート文字列はリテラルの表記法ですが、評価すると平易な文字列です。変数には "templateness"という魔法のような痕跡があります。

+1

これは完璧です、ありがとうございます! –

関連する問題