Ответ 1
Это работает:
div#demo.collapse(class=typeof fromEdit === "undefined" ? "" : "in")
Попробуйте здесь.
Есть ли способ сделать это встроенным в шаблон нефрита?
if(typeof fromEdit != 'undefined')
div#demo.collapse.in
else
div#demo.collapse
Хотелось бы выполнить эту условную проверку "inline", и результат добавит .in в конец div, если fromEdit существует.
Это работает:
div#demo.collapse(class=typeof fromEdit === "undefined" ? "" : "in")
Попробуйте здесь.
Если вы не хотите, чтобы атрибут класса добавлялся, когда нет значения, вы можете назначить его undefined вместо пустой строки. Вот предыдущий пример, слегка измененный:
div#demo.collapse(class=typeof fromEdit === "undefined" ? undefined : "in")
Обновление. Кроме того, если вы используете pug, теперь вы можете добавить столько объявлений class=
, сколько хотите, с разными условиями и они получат сцепление в результирующем атрибуте класса. например:.
#demo.collapse(class=cond1 && 'class1' class=cond2 && 'class2')
Как описано в http://jade-lang.com/reference/attributes/:
Атрибут class [...] Он также может быть именем класса сопоставления объектов с истинными или ложными значениями, что полезно для применения условных классов
задача также может быть выполнена следующим образом:
div#demo.collapse(class={ in: typeof fromEdit != 'undefined' })
Хотя здесь это не работает http://naltatis.github.com/jade-syntax-docs/ (я думаю, что им нужно что-то обновить), но он работает с [email protected] 0.
С помощью мопса 2 вы можете использовать этот синтаксис:
div#demo(class="collapse", class={"in": typeof fromEdit !== 'undefined'}) Home page
Хотя старый вопрос, я считаю, что следующие работы, поскольку Pug включает обнаружение существования объекта, встроенное в:
div#demo.collapse(class=fromEdit? 'in':undefined)
Если это не очевидно, это проверяет, существует ли fromEdit
, и если он входит в in
в качестве класса, в противном случае оставить класс пустым.