Insérer du HTML dans un modèle de guidon sans échapper

143

Existe-t-il un moyen d'insérer une chaîne avec des balises html dans un modèle de guidon sans échapper les balises dans la chaîne sortante?

template.js:

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

utiliser le modèle

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

résultat réel:

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

résultat attendu:

<p><i>test</i> 123</p>
Andreas Köberle
la source
Copie

Réponses:

350

Essayez comme

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

J'ai la référence officielle pour soutenir ma réponse:

Les valeurs d'échappement HTML des guidons renvoyées par a {{expression}}. Si vous ne voulez pas Guidons d'échapper à une valeur, utilisez la « triple-planque », {{{.

Praveen
la source
27
Pour une fois, quelque chose de simple .
Madbreaks
7
Honnêtement, cela semble être la pire chose qu'ils auraient pu choisir car c'est difficile à remarquer. Pourquoi pas juste quelque chose de simple mais visible comme {{ rawHtml expression }}.
danneu le
1
D'accord avec @danneu. Pas de sténographie magique ou mignonne, s'il vous plaît. Explicite, c'est mieux à long terme.
Matt le
29

Dans votre modèle, vous devez ajouter des moustaches triples comme celle-ci. <p>{{{content}}}</p>

Jernej Novak
la source
11

Selon la documentation de Handlebars, http://handlebarsjs.com/expressions.html

Citation de la documentation ,

Si vous ne voulez pas que Handlebars échappe une valeur, utilisez le "triple-stash", {{{

Passez le modèle HTML brut au modèle Handlebars et obtenez la sortie HTML brute en utilisant des crochets triples.

{{{foo}}}
Lorem Ipsum Dolor
la source