Inserir html em um modelo de guiador sem escapar


143

Existe uma maneira de inserir uma string com tags html em um modelo de guidão sem que as tags escapem na string de saída?

template.js:

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

use o modelo

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

resultado real:

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

resultado esperado:

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

Respostas:


348

Tente como

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

Eu recebi a referência oficial para apoiar minha resposta:

Guidão HTML - escapa valores retornados por a {{expression}}. Se você não quiser que o Guiador escape de um valor, use o "triple-stash" {{{,.


27
Pela primeira vez, algo simples .
Madbreaks

7
Honestamente, parece a pior coisa que eles poderiam ter escolhido, já que é difícil perceber. Por que não apenas algo simples, mas visível como {{ rawHtml expression }}.
danneu

1
Concorde com @danneu. Nenhuma mágica ou taquigrafia fofa, por favor. Explícito é melhor a longo prazo.
Matt

29

No seu modelo, você deve adicionar bigodes triplos como este. <p>{{{content}}}</p>


11

De acordo com a documentação do guiador, http://handlebarsjs.com/expressions.html

Cite a documentação ,

Se você não quiser que o guidão escape de um valor, use o "triple-stash", {{{

Passe o modelo HTML bruto para o guidão e obtenha a saída HTML bruta usando colchetes triplos.

{{{foo}}}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.