Fügen Sie HTML in eine Lenkervorlage ein, ohne zu maskieren

143

Gibt es eine Möglichkeit, eine Zeichenfolge mit HTML-Tags in eine Lenkervorlage einzufügen, ohne dass die Tags in der ausgehenden Zeichenfolge maskiert werden?

template.js:

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

Verwenden Sie die Vorlage

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

tatsächliches Ergebnis:

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

erwartetes Ergebnis:

<p><i>test</i> 123</p>
Andreas Köberle
quelle
Mögliches Duplikat der
Lenkervorlagen-

Antworten:

346

Versuchen Sie es wie

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

Ich habe die offizielle Referenz erhalten , um meine Antwort zu unterstützen:

Lenker HTML-Escape-Werte, die von a zurückgegeben werden {{expression}}. Wenn Sie nicht möchten, dass Lenker einem Wert entkommen, verwenden Sie den "Triple-Stash" {{{.

Praveen
quelle
27
Ausnahmsweise etwas Einfaches .
Madbreaks
7
Ehrlich gesagt scheint es das Schlimmste zu sein, was sie hätten wählen können, da es schwer zu bemerken ist. Warum nicht einfach etwas Einfaches, aber Sichtbares wie {{ rawHtml expression }}.
Danneu
1
Danke dir. so viel <3
Gopal
1
Stimmen Sie mit @danneu überein. Bitte keine Magie oder süße Abkürzung. Explizit ist auf lange Sicht besser.
Matt
29

In Ihrer Vorlage müssen Sie dreifache Schnurrbärte wie diesen hinzufügen. <p>{{{content}}}</p>

Jernej Novak
quelle
11

Laut Dokumentation zum Lenker http://handlebarsjs.com/expressions.html

Zitat aus der Dokumentation ,

Wenn Sie nicht möchten, dass Lenker einem Wert entkommen, verwenden Sie den "Triple-Stash". {{{

Übergeben Sie den Roh-HTML-Code an die Lenker-Vorlage und erhalten Sie die Roh-HTML-Ausgabe in dreifachen Klammern.

{{{foo}}}
Lorem Ipsum Dolor
quelle