2017-01-05 2 views
0

Ich möchte ein Div verstecken, es sei denn, das Div hat Daten an die lokale Variable erhalten. Ich habe dies im Moment:Jade/Pug: Hide div, es sei denn Variable hat Daten

div#cost 
     p You earn #{cost} a day! 

Aber es wird auf der Seite angezeigt. Wie verstecke ich es, bis es die Daten empfängt? Im verwirrt über Jades if/else Syntax

Antwort

1
-if (cost) 
    div#cost 
     p You earn #{cost} a day! 

Zunächst einmal bedeutet die - dass es ungepufferte Javascript-Code ist. Dies bedeutet, dass dies nicht in der endgültigen Version der Vorlage gerendert wird. Wenn Sie das möchten, sollten Sie ein Skript-Tag wie folgt verwenden: script..

Zweitens wird die if-Anweisung prüfen, ob die Kosten nicht gleich null oder undefiniert sind. Wenn es nicht existiert, wird der Code innerhalb der if-Anweisung übersprungen.

Der obige Code wird im folgenden HTML führen, wenn die Kosten auf null oder nicht definiert ist nicht gleich:

<div id="cost"> 
    <p>You earn ... cost a day!</p> 
</div> 
+0

Ah schön. Danke –

0

nicht möglich zu erreichen, was Sie versuchen ist. Jade/Pug ist eine Template-Engine, Sie können Platzhaltervariable geben, Loops, Bedingungen usw. ausführen, aber Ihr Browser versteht jade/pug nicht, es versteht nur HTML, was bedeutet, dass Ihre Vorlage vor der Anzeige in einen statischen HTML-Inhalt konvertiert wird.

Der if/else-Block entscheidet, was Teil der generierten HTML-Datei sein soll. Sobald die Datei generiert wurde, hat jade/pug keine Kontrolle darüber.

Wenn Sie Ihr DOM dynamisch steuern möchten, können Sie ein Webframework wie Angular, Vue, React verwenden oder Sie können DOM-Manipulation mit jQuery oder von Hand mit normalem Javascript durchführen.

+0

Sie können diese Frage tatsächlich auf zwei Arten interpretieren. Ich habe die Antwort auf die Frage gegeben, welche Variablen in der Templating-Engine vorhanden sind (entweder lokal durch ungepuffertes Javascript definiert oder von Node.js geholt), aber diese Antwort ist ebenfalls sehr gültig. – DevNebulae

Verwandte Themen