Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jade conditional (if/else) to add class to div inline

Is there a way to do this inline in a jade template?

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

Would like to do this conditional check "inline" and the result would add the .in to the end of the div if fromEdit exists.

like image 899
jstevens13 Avatar asked Jan 03 '13 17:01

jstevens13


2 Answers

This works:

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

Try it out here.

like image 80
Dogbert Avatar answered Oct 07 '22 16:10

Dogbert


If you don't want the class attribute to be added when there is no value, you can assign it undefined instead of an empty string. Here is the previous example, slightly modified:

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

Update: Also, if you are using pug, you can now add as many class= declarations as you want with different conditions and they'll get concatenated in the resulting class attribute. e.g.:

#demo.collapse(class=cond1 && 'class1' class=cond2 && 'class2') 
like image 25
Arkanoid Avatar answered Oct 07 '22 15:10

Arkanoid