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>
Andreas Köberle
fonte
Possível duplicado do modelo de prestação Template Guidão como texto
MathKimRobin

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" {{{,.

Praveen
fonte
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>

Jernej Novak
fonte
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}}}
Lorem Ipsum Dolor
fonte