18

我正在使用 .js 文件将日期发送到 .jade 文件Node.js。当该#{date}字段为false时,它执行 else 并打印man为它的答案。可能出了什么问题?

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

3 回答 3

31

如果日期为假,你想输出字符串'man'吗?如果是,则您的 if 和 else 语句是错误的方法...

怎么样:

if date
  = date
else
  | man

甚至:

| #{date ? date : 'man'}

或者简单地说:

| #{date || 'man'}
于 2013-02-19T15:24:55.550 回答
8

在 if 表达式中,您可以编写简单的变量名称,而不使用 #{...}

if date == false
  | #{date}
else
  | man
于 2013-02-08T21:04:00.847 回答
2

你的说法是倒退的。对于语法,您可以使用此样式来工作:

p Date:
  if date
    | date
  else
    |  man

您不需要#{}inside 表达式是正确的。我无法获得=工作,或其他答案的其他方式。

三元样式

对于我自己,我也在寻找三元运算符在一条线上执行此操作。我将其缩减为:

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

或者,您可以使用 var,它增加了一行,但仍然比 OP 少:

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

正如另一个答案中所建议的,我无法使以下工作正常进行。

| #{date ? date : 'man'}
于 2017-06-23T03:16:48.333 回答