2013-01-03 10 views
21

Jak uzyskać jade do renderowania zaznaczonego atrybutu checkboxa na podstawie warunku? Podobnie jak tych dwóch wersji tagu checkbox HTML:Jade zaznaczony checkbox zaznaczony niezaznaczony w oparciu o warunkowe (jeśli)

To wydaje się być ważne tylko wersja odznaczone:

> <input type="checkbox" name="vehicle" value="Bike"> 

Gdy ta opcja jest włączona:

> <input type="checkbox" name="vehicle" value="Car" checked="checked"> 

Oto, co próbowałem do tej pory:

Ten Jade jest w porządku:

input(type="checkbox", name="completed", checked=(true===true ? "checked" : "")).checkbox 

ponieważ czyni to:

<input type="checkbox" name="completed" checked="checked" class="checkbox"> 

ale Jade nie jest w porządku:

input(type="checkbox", name="completed", checked=(false===true ? "checked" : "")).checkbox 

ponieważ czyni to:

<input type="checkbox" name="completed" checked="" class="checkbox">

zamiast tego:

<input type="checkbox" name="completed" class="checkbox">

Jak mogę dostać Jade uczynić całą sprawdzenia atrybut zamiast tylko wartości sprawdzonej attibute?

Odpowiedz

58

Można użyć:

input(type="checkbox", name="completed", checked=(true===false ? "checked" : undefined)) 
+0

WOW - to działa! Dziękuję Ci! – jstevens13

+0

Dzięki za odpowiedź – Erik

14

Nie należy określić wartości:

input(type="checkbox", name="completed", checked=(condition)) 

Jeśli warunek nie jest spełniony, nie ma atrybut będzie sprawdzana dodał.

+0

Działa doskonale! – Nocturno

+0

checked = false wciąż pokazuje zaznaczone? –

+1

Nie, jeśli warunek jest fałszywy, null lub undefined, to "checked" zostanie zignorowane –

0

Innym sposobem, aby zrobić to samo jest warunek „if”:

if(#{data.refrigerated} == '1') 
    input(type='checkbox', name='refrigerated', checked) 
else 
    input(type='checkbox', name='refrigerated') 

Kiedy warunek będzie prawdziwy, dostaniesz zaznaczone pole wyboru na DOM inaczej dostaniesz niezaznaczone pole wyboru.

0

można spróbować tak

option(value='man' selected = profile.sex ==='man') man 
    option(value='female' selected = profile.sex ==='female') female 
Powiązane problemy