在车把模板中插入 html 而不转义

IT技术 javascript handlebars.js
2021-03-14 01:30:35

有没有办法将带有 html 标签的字符串插入车把模板,而不会在输出字符串中转义标签?

模板.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>
3个回答

试试像

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

官方参考

Handlebars HTML 转义值由{{expression}}. 如果您不希望 Handlebars 转义值,请使用“triple-stash”, {{{

老实说,这似乎是他们选择的最糟糕的事情,因为很难注意到。为什么不只是像{{ rawHtml expression }}.
2021-04-24 01:30:35
同意@danneu。请不要魔法或可爱的速记。从长远来看,明确更好。
2021-05-03 01:30:35

在您的模板中,您必须像这样添加三重胡须。 <p>{{{content}}}</p>

根据 Handlebars 文档,http://handlebarsjs.com/expressions.html

从文档中引用

如果您不希望 Handlebars 转义一个值,请使用“triple-stash”, {{{

将原始 HTML 传递给 Handlebars 模板并使用三重括号获取原始 HTML 输出。

{{{foo}}}