web-dev-qa-db-fra.com

Jade / Pug si autre condition condition d'utilisation

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
18
Kumar Kailash

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'}
31
Mike Causer

Dans l'expression if, vous écrivez des noms de variables simples, sans # {...}

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

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'}
2
blamb