Jade/Pug的if else条件用法

18
我正在使用Node.js从我的.js文件向.jade文件发送日期。当#{date}字段为false时,它会执行else并打印man作为它的答案。可能出了什么问题?
if #{date} == false
  | #{date}
else
  | man
3个回答

30
如果date为假,您是否想输出字符串'man'?如果是的话,您的if和else语句是颠倒的...
怎么样:
if date
  = date
else
  | man

或者更多:

| #{date ? date : 'man'}

或者简单地说:

| #{date || 'man'}

8

在if表达式中,您只需编写普通变量名称,而不需要使用#{...}。

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

2

您的陈述反了。对于语法,您可以使用以下样式进行操作:

p Date:
  if date
    | date
  else
    |  man

你不需要在表达式中使用#{}。我无法让=或其他方法在其他答案中起作用。

三元运算符样式

对于我自己,我也在寻找三元运算符,在一行上完成此操作。我把它简化为如下:

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

另外,您可以使用var,这会增加一行代码,但仍然比OP的代码更少:

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

我无法像另一个答案中建议的那样使以下内容正常工作。

| #{date ? date : 'man'}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接