Jade/Pug, если используется другое условие

Я отправляю дату в файл .jade из моего .js файла, используя Node.js. Когда поле #{date} false, оно выполняет else и печатает man по мере ответа. Что может быть не так?

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

Ответы

Ответ 1

Если дата ложна, вы хотите вывести строку "человек"? Если да, ваши утверждения if и else неправильны...

Как насчет:

if date
  = date
else
  | man

или даже:

| #{date ? date : 'man'}

или просто:

| #{date || 'man'}

Ответ 2

Внутри выражения вы пишете простые имена переменных, без # {...}

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

Ответ 3

Ваше выражение было назад. Для синтаксиса вы можете использовать этот стиль для работы:

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