2013-02-07 9 views
15

Ich sende ein Datum zu einer .jade-Datei aus meiner .js-Datei mit Node.js. Wenn das Feld #{date}false ist, führt es das else aus und druckt man, wie es antwortet. Was könnte schief gehen?Jade/Pug, wenn andere Bedingung Verwendung

if #{date} == false 
    | #{date} 
else 
    | man 

Antwort

27

Wenn Datum falsch ist, wollen Sie die Ausgabe der Zeichenfolge ‚Mann‘? Wenn ja, Ihre if und else Aussagen sind falsch herum ...

Wie wäre:

if date 
    = date 
else 
    | man 

oder sogar:

| #{date ? date : 'man'} 

oder einfach:

| #{date || 'man'} 
8

Innerhalb wenn Ausdruck Sie Normalvariablennamen schreiben, ohne # {...}

if date == false 
    | #{date} 
else 
    | man 
0

Ihre Aussage war rückwärts. Für die Syntax können Sie diesen Stil verwenden zu arbeiten:

p Date: 
    if date 
    | date 
    else 
    | man 

Sein richtig, dass Sie nicht den #{} innerhalb Ausdruck benötigen. Ich war nicht in der Lage, die = zu arbeiten, oder andere Möglichkeiten auf die anderen Antworten.

Ternary Stil

die für mich, auch ich war auf der Suche nach dem ternären Operator dieses auf einer Linie zu tun. Ich schnitzte es so weit nach unten:

p Date: #{(date ? date : "man")} 

Alternativ können Sie eine var verwenden, die eine weitere Zeile hinzufügt, ist aber immer noch weniger Zeilen als OP:

- var myDate = (date ? date : "man") 
p Date: #{myDate} 

Ich war nicht in der Lage das bekommen zur Arbeit folgen, wie in einer anderen Antwort vorgeschlagen.

| #{date ? date : 'man'}