2013-02-07 99 views
15

我使用Node.js从我的.js文件发送日期到.jade文件。当#{date}字段为false时,它会在执行回答时执行else和print man。可能会出现什么问题?Jade/Pug if else condition usage

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

回答

27

如果日期是假的,你要输出字符串“男人”? 如果是,你如果和else语句都是围绕走错了路......

如何:

if date 
    = date 
else 
    | man 

甚至:

| #{date ? date : 'man'} 

或者干脆:

| #{date || 'man'} 
8

如果表达你写简单的变量名中,没有#{...}

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

你的陈述倒退了。对于语法,您可以使用这种风格的工作:

p Date: 
    if date 
    | date 
    else 
    | man 

其正确的,你不需要表达内#{}。我无法使=工作,或其他方式的其他答案。

三元风格

为我自己,我也一直在寻找三元运算符来做到这一点的一条线。我又缩减到这一点:

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

或者,你可以使用一个变种,它增加了一个多线,但仍是线不到OP:

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

我是不是能够得到继续工作,如另一个答案中所建议的。

| #{date ? date : 'man'}