45 Stimmen

Roh-HTML-Zeichenfolgen auf EJS drucken

Ich verwende express.js mit EJS-Vorlagen und ich versuche, etwas wie dieses zu tun:

<%= "<a href='#'>Test</a>" %>

aber er druckt dies:

&lt;a href='#'&gt;Test&lt;/a&gt;

Wie kann ich "html-sichere" Zeichenketten drucken?

76voto

alessioalex Punkte 60195

Sie sollten überall HTML-Code verwenden und die EJS-Tags nur dort einsetzen, wo Sie dynamische Daten benötigen. Beispiel:

<a href='<%= user.id %>'><%= user.name %</a>

Um Ihre Frage konkret zu beantworten, können Sie Folgendes verwenden <%- "<tags_here>" %> zur Ausgabe ungefangen HTML-Daten.

35voto

Ivan Zhirkov Punkte 499

Für die Rohausgabe von html in ejs können Sie diesen Code verwenden

<%- "<a href='#'>Test</a>" %>

17voto

Miguel Carvajal Punkte 1599

Dies sind die verfügbaren Optionen gemäß der Dokumentation

  1. <% 'Scriptlet'-Tag, für Kontrollfluss, keine Ausgabe
  2. <%_ 'Whitespace Slurping' Scriptlet Tag, entfernt alle Leerzeichen vor dem Tag
  3. <%= Gibt den Wert in der Vorlage aus (HTML escaped)
  4. <%- Gibt den uneingekapselten Wert in der Vorlage aus
  5. <%# Kommentar-Tag, keine Ausführung, keine Ausgabe
  6. <%% Gibt ein Literal '<%' aus
  7. %> Einfacher Endtag
  8. -%> Trim-mode ('newline slurp') Tag, schneidet folgenden Zeilenumbruch ab
  9. _%> 'Whitespace Slurping'-Endtag, entfernt alle Leerzeichen nach ihm

Sieht so aus, als wäre die Nummer 4 die richtige Option für Sie.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X