web-dev-qa-db-ja.com

エスケープせずにハンドルバーテンプレートにHTMLを挿入する

今後の文字列でタグをエスケープせずに、htmlタグ付きの文字列をハンドルバーテンプレートに挿入する方法はありますか?

template.js:

<p>{{content}}</p>

テンプレートを使用する

HBS.template({content: "<i>test</i> 123"})

実際の結果:

<p>&lt;i&gt;test&lt;/i&gt; 123</p>

期待される結果:

<p><i>test</i> 123</p>
115

のように試してください

<p>{{{content}}}</p>

私の答えをサポートするために 公式リファレンス を得ました:

Handlebarsは、{{expression}}によって返されるHTMLエスケープ値です。 ハンドルバーに値をエスケープさせたくない場合は、「トリプルスタッシュ」を使用します、{{{

273
Praveen

テンプレートに、このようなトリプルヒゲを追加する必要があります。 <p>{{{content}}}</p>

23
Jernej Novak

Handlebarsのドキュメントによると、 http://handlebarsjs.com/expressions.html

ドキュメントからの引用

Handlebarに値をエスケープさせたくない場合は、「トリプルスタッシュ」、{{{を使用します

生のHTMLをHandlebarsテンプレートに渡し、トリプルブラケットを使用して生のHTML出力を取得します。

{{{foo}}}
5