Jade有条件(如果/其他)将类添加到div内联


69

有没有办法在翡翠模板中内联?

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

想要执行此条件检查“内联”,如果fromEdit存在,则结果会将.in添加到div的末尾。


我用它a(class=(selectNav=='myprofile' && 'selected'), href='...')
穆罕默德·乌默尔

Answers:


107

这有效:

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

在这里尝试。


2
class如果条件为假,您甚至不希望元素具有属性
。.– vsync

如何做它像一个(类=任务[I] .STATUS“BTN BTN-成功”?:“BTN BTN-黑暗”,HREF =对象值/turn/ ${tasks[i]._id})来完成显示错误不能读取属性“地位”的未定义
潘卡

79

如果您不希望在没有值的情况下添加class属性,则可以为它分配未定义的值,而不是空字符串。这是前面的示例,稍作修改:

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

更新:另外,如果您使用的是pug,那么现在可以在class=不同的条件下根据需要添加任意数量的声明,它们将被串联在结果类属性中。例如:

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

谢谢!正是我想要的。

如果必须检查多个条件,该怎么办?例如,两个类各自具有自己的检查?
Alex Shwarc '16

5

http://jade-lang.com/reference/attributes/所述

类属性[...]也可以是将类名称映射为true或false的对象,这对于应用条件类很有用

该任务还可以通过以下方式完成:

div#demo.collapse(class={ in: typeof fromEdit != 'undefined' })

尽管它在这里不起作用http://naltatis.github.com/jade-syntax-docs/(我认为他们需要更新某些东西),但是它可以与jade@1.11.0一起使用。


这就是现在使用玉/巴的方式。它允许多个条件类,并向对象添加另一个键。
webdif '16


2

虽然是一个老问题,但我发现由于Pug包含内置的对象存在检测,因此以下工作有效:

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

如果不明显,则检查是否fromEdit存在,是否确实in作为类输入,否则将类留空。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.