Jade/Pug if else condition usage

纵然是瞬间 提交于 2019-12-31 21:22:26

问题


I'm sending a date to a .jade file from my .js file using Node.js. When the #{date} field is false, it executes the else and print man as it's answer. What could be going wrong?

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

回答1:


If date is false, do you want to output the string 'man'? If yes, your if and else statements are the wrong way around...

How about:

if date
  = date
else
  | man

or even:

| #{date ? date : 'man'}

or simply:

| #{date || 'man'}



回答2:


Within if expression you write plain variable names, without #{...}

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



回答3:


Your statement was backwards. For the syntax, You can use this style to work:

p Date:
  if date
    | date
  else
    |  man

Its correct that you don't need the #{} within expression. I was not able to get the = to work, or other ways on the other answers.

Ternary Style

For Myself, I too was looking for the ternary operator to do this on one line. I whittled it down to this:

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

Alternatively, you can use a var, which adds one more line, but is still less lines than OP:

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

I was not able to get the following to work, as suggested in another answer.

| #{date ? date : 'man'}


来源:https://stackoverflow.com/questions/14744984/jade-pug-if-else-condition-usage

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!