Jade有条件的(if / else)将class添加到div内联

有没有办法做到这一点在玉模板内联?

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

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

这工作:

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

试试看。

如果不希望在没有值时添加class属性,则可以将其指定为undefined而不是空string。 这是前面的例子,稍加修改:

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

更新:另外,如果你正在使用帕格 ,你现在可以添加尽可能多的class=声明,只要你想使用不同的条件,他们将被连接在生成的class属性中。 例如:

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

正如http://jade-lang.com/reference/attributes/所logging的那样:;

类属性[…]它也可以是一个对象映射类名到true或false值,这对于应用条件类很有用

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

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

虽然这不起作用http://naltatis.github.com/jade-syntax-docs/ (我认为他们需要更新的东西),但它适用于jade@1.11.0。

用帕格2,你可以使用这个语法:

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

更多在这里: https : //pugjs.org/language/attributes.html

虽然是一个老问题,但我发现自帕格以来的作品包括内置的对象存在检测:

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

如果不是很明显,这将检查fromEdit存在以及是否作为类进入,否则将类留空。