Подтвердить что ты не робот

Jade условный (если/else), чтобы добавить класс в div inline

Есть ли способ сделать это встроенным в шаблон нефрита?

if(typeof fromEdit != 'undefined')
   div#demo.collapse.in
else
   div#demo.collapse

Хотелось бы выполнить эту условную проверку "inline", и результат добавит .in в конец div, если fromEdit существует.

4b9b3361

Ответ 1

Это работает:

div#demo.collapse(class=typeof fromEdit === "undefined" ? "" : "in")

Попробуйте здесь.

Ответ 2

Если вы не хотите, чтобы атрибут класса добавлялся, когда нет значения, вы можете назначить его undefined вместо пустой строки. Вот предыдущий пример, слегка измененный:

div#demo.collapse(class=typeof fromEdit === "undefined" ? undefined : "in")

Обновление. Кроме того, если вы используете pug, теперь вы можете добавить столько объявлений class=, сколько хотите, с разными условиями и они получат сцепление в результирующем атрибуте класса. например:.

#demo.collapse(class=cond1 && 'class1' class=cond2 && 'class2')

Ответ 3

Как описано в 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.

Ответ 4

С помощью мопса 2 вы можете использовать этот синтаксис:

div#demo(class="collapse", class={"in": typeof fromEdit !== 'undefined'}) Home page

здесь: https://pugjs.org/language/attributes.html

Ответ 5

Хотя старый вопрос, я считаю, что следующие работы, поскольку Pug включает обнаружение существования объекта, встроенное в:

div#demo.collapse(class=fromEdit? 'in':undefined)

Если это не очевидно, это проверяет, существует ли fromEdit, и если он входит в in в качестве класса, в противном случае оставить класс пустым.