在没有转义的情况下在手柄模板中插入html

And*_*rle 124 javascript handlebars.js

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

template.js:

<p>{{content}}</p>
Run Code Online (Sandbox Code Playgroud)

使用模板

HBS.template({content: "<i>test</i> 123"})
Run Code Online (Sandbox Code Playgroud)

实际结果:

<p>&lt;i&gt;test&lt;/i&gt; 123</p>
Run Code Online (Sandbox Code Playgroud)

预期结果:

<p><i>test</i> 123</p>
Run Code Online (Sandbox Code Playgroud)

Pra*_*een 290

试试吧

<p>{{{content}}}</p>
Run Code Online (Sandbox Code Playgroud)

我得到了官方的参考资料来支持我的回答:

Handlebars HTML-escapes返回的值{{expression}}.如果您不希望Handlebars转义值,请使用"triple-stash" {{{.

  • 一次,一些_simple_. (20认同)
  • 值得注意的是,空格也很重要,因此 `{{{content}}}` != `{{{ content }}}`, secondary 不起作用。确保不包含任何空格。 (6认同)
  • 老实说他们可以选择最糟糕的事情,因为很难注意到.为什么不只是简单但像`{{rawHtml expression}}`那样可见. (4认同)
  • 同意@danneu。请不要使用魔法或可爱的速记。从长远来看,明确更好。 (2认同)

Jer*_*vak 26

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


Lor*_*lor 7

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

从文档引用,

如果您不希望Handlebars转义值,请使用"triple-stash", {{{

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

{{{foo}}}
Run Code Online (Sandbox Code Playgroud)