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>

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


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>


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}}}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.