Ich versuche, JavaScript mithilfe von Jade (http://jade-lang.com/) auf meiner Seite zum Rendern zu bringen.
Mein Projekt ist in NodeJS mit Express, alles funktioniert korrekt, bis ich etwas Inline-JavaScript in den Kopf schreiben möchte. Selbst wenn ich die Beispiele aus den Jade-Dokumenten nehme, kann ich es nicht zum Laufen bringen. Was fehlt mir?
Jade Vorlage
!!! 5
html(lang="en")
head
title "Test"
script(type='text/javascript')
if (10 == 10) {
alert("working")
}
body
Resultierendes gerendertes HTML im Browser
<!DOCTYPE html>
<html lang="en">
<head>
<title>"Test"</title>
<script type="text/javascript">
<if>(10 == 10) {<alert working></alert></if>}
</script>
</head>
<body>
</body>
</html>
Irgendwelche definitiv ein Fehlschlag hier irgendwelche Ideen?
.
nach dem(type='text/javascript')
!!! 5
ist veraltet, müssen Sie verwendendoctype html
Antworten:
Verwenden Sie einfach ein 'Skript'-Tag mit einem Punkt danach.
https://github.com/pugjs/pug/blob/master/examples/dynamicscript.pug
quelle
<script>
statt produzieren<script type="text/javascript">
.type="text/javascript"
ist der Standardwert für dastype
Feld für<script>
Tags. Sie müssen es nicht einstellen..
angehängt sein. Alsoscript.
gefolgt von Ihrem eingerückten JS-Block.Der
:javascript
Filter wurde in Version 7.0 entferntIn den Dokumenten wird angegeben, dass Sie
script
jetzt ein Tag verwenden sollten, gefolgt von einem.
Zeichen und keinem vorangestellten Leerzeichen.Beispiel:
wird zu kompiliert
quelle
Verwenden Sie ein Skript-Tag mit dem angegebenen Typ. Fügen Sie es einfach vor dem Punkt ein:
Dies wird kompiliert zu:
quelle
script.
wäre in Ordnung.Kein Skript-Tag verwenden.
Lösung mit
|
:Oder mit einem
.
:quelle
.
. Andernfalls müssten Sie|
in jede Zeile schreiben .DRITTE VERSION MEINER ANTWORT:
Hier ist ein mehrzeiliges Beispiel für Inline-Jade-Javascript. Ich glaube nicht, dass man es schreiben kann, ohne a zu verwenden
-
. Dies ist ein Beispiel für eine Flash-Nachricht, das ich teilweise verwende. Hoffe das hilft!Ist der Code, den Sie erhalten möchten, um den Code in Ihrer Frage zu kompilieren?
Wenn ja, brauchen Sie nicht zwei Dinge: Erstens müssen Sie nicht deklarieren, dass es sich um Javascript / ein Skript handelt. Sie können einfach nach der Eingabe mit dem Codieren beginnen
-
. Zweitens müssen-if
Sie nach der Eingabe nicht das{
oder eingeben}
auch nicht . Das macht Jade ziemlich süß.-------------- ORIGINAL ANTWORT UNTEN ---------------
Versuchen Sie das Voranstellen
if
mit-
:Es gibt auch Tonnen von Jade-Beispielen bei:
https://github.com/visionmedia/jade/blob/master/examples/
quelle
Für mehrzeiligen Inhalt verwendet Jade normalerweise ein "|":
Das heißt, ich kann das Problem, das Sie haben, nicht reproduzieren. Wenn ich diesen Code in eine Jade-Vorlage einfüge, wird die richtige Ausgabe erstellt und beim Laden der Seite eine Warnung angezeigt.
quelle
Verwenden Sie den
:javascript
Filter. Dadurch wird ein Skript-Tag generiert und der Skriptinhalt als CDATA maskiert:quelle
script.
funktioniert ein gut und ist legal!!! 5
quelle