2013-01-03 11 views
58

C'è un modo per farlo in linea in un modello di giada?Jade condizionale (se/else) per aggiungere una classe al div in linea

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

vorrebbe fare questa condizione di controllo "in linea" e il risultato sarebbe aggiungere il .in alla fine del div se fromEdit esiste.

+0

io uso questo 'un (class = (selectNav == 'myprofile' && 'selezionato'), href = '...') ' –

risposta

91

Questo funziona:

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

Prova ora here.

+0

Lo fa sicuramente! Grazie! – jstevens13

+2

ma non vorrai che l'elemento abbia un attributo 'class' se la condizione è falsa .. – vsync

+0

ha funzionato bene grazie. – yussan

74

Se non si desidera aggiungere l'attributo di classe quando non c'è alcun valore, è possibile assegnarlo non definito anziché una stringa vuota. Ecco l'esempio precedente, leggermente modificata:

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

Aggiornamento: Inoltre, se si utilizza pug, è ora possibile aggiungere il numero di class= dichiarazioni come si desidera con condizioni diverse e che otterranno concatenati nella classe risultante attributo. ad esempio:

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

+1 e IMO questa dovrebbe essere la risposta accettata – Darkhogg

+1

Risposta molto buona (+1) – Tom

+0

Grazie! esattamente quello che stavo cercando. –

5

come documentato in http://jade-lang.com/reference/attributes/:

L'attributo class [...] Può anche essere un nomi delle classi oggetto di mappatura a valori true o false, che è utile per l'applicazione di classi condizionali

il compito può essere fatto anche dal seguente:

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

Anche se non funziona qui http://naltatis.github.com/jade-syntax-docs/ (penso che debbano aggiornare qualcosa), ma funziona con [email protected]

+0

Questa è la strada da percorrere ora con jade/pug. Consente più classi condizionali, aggiungendo un'altra chiave all'oggetto. – webdif

2

Anche se una vecchia questione, trovo che le seguenti opere dal Pug include il rilevamento di oggetti esistenza costruito in:

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

Se non è ovvio, questo controlla se fromEdit esiste e se lo fa entra in come la classe , altrimenti lascia la classe vuota.

Problemi correlati