J'envoie une date à un fichier .jade à partir de mon fichier .js en utilisant Node.js
. Quand le #{date}
le champ est false
, il exécute le reste et affiche man
comme réponse. Qu'est-ce qui pourrait mal tourner?
if #{date} == false
| #{date}
else
| man
Si la date est fausse, voulez-vous sortir la chaîne 'man'? Si oui, vos déclarations if et else sont dans le mauvais sens ...
Que diriez-vous:
if date
= date
else
| man
ou même:
| #{date ? date : 'man'}
ou simplement:
| #{date || 'man'}
Dans l'expression if, vous écrivez des noms de variables simples, sans # {...}
if date == false
| #{date}
else
| man
Votre déclaration était à l'envers. Pour la syntaxe, vous pouvez utiliser ce style pour travailler:
p Date:
if date
| date
else
| man
Il est exact que vous n'avez pas besoin du #{}
dans l'expression. Je n'ai pas pu obtenir le =
pour travailler, ou d'autres façons sur les autres réponses.
Style ternaire
Pour moi, je cherchais moi aussi l'opérateur ternaire pour le faire sur une seule ligne. Je l'ai réduit à ceci:
p Date: #{(date ? date : "man")}
Alternativement, vous pouvez utiliser un var, qui ajoute une ligne de plus, mais qui est toujours moins de lignes que OP:
- var myDate = (date ? date : "man")
p Date: #{myDate}
Je n'ai pas réussi à faire fonctionner les éléments suivants, comme suggéré dans une autre réponse.
| #{date ? date : 'man'}