Нефрит/Мопс, если еще условие использования


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

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

3 ответа:

Если значение date равно false, вы хотите вывести строку 'man'? Если да, то ваши утверждения if и else неверны...

Как насчет:

if date
  = date
else
  | man

Или даже:

| #{date ? date : 'man'}

Или просто:

| #{date || 'man'}

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

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

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

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