2013-07-31 19 views
22

Chcę ustawić klasę css bootstrap na zakres z warunkiem (do wartości powiązanej). Mam isApproved pole na liście, chcę zobaczyć pole z klasą "sukcesu etykiety", gdy jest ono aktywne i klasa "ważna dla etykiety", gdy jest nieaktywna Dodałem tę linię, ale cały czas jej przyjmowanie pierwsza klasa:przy użyciu nokautu do ustawienia klasy css z warunkiem Jeśli:

data-bind="text: isApproved, css: isApproved = 'true' ? 'label label-important' : 'label label-important'" 

Czy jest to możliwe w html lub powinienem dodać pole obliczeniowe na mojej maszynie wirtualnej?

+0

Czy możesz dodać kod, z którym współpracujesz? JS i HTML? Najlepiej w jsfiddle czy coś takiego. –

Odpowiedz

35

Jeśli dobrze cię zrozumiałem, to jest to wiązanie, którego szukasz.

data-bind="text: isApproved, css: { 
    'label' : true, 
    'label-success' : isApproved(), 
    'label-important': !isApproved() 
}" 

Mam nadzieję, że pomoże.

+0

Dzięki, nie zwróciłem uwagi na() z właściwością isApproved. – Wasim

27

Możesz również nas, trójstronnego operatora. Na przykład:

<span class="label" data-bind="text: isApproved, css: isApproved() == true ? 'label-success' : 'label-important'"></span> 
+1

Dzięki, nie zwróciłem uwagi na() z właściwością isApproved. – Wasim

+0

Jest to bardziej eleganckie rozwiązanie. Gratulacje. –

+0

Ważne, aby użyć tego rozwiązania: w moim przypadku funkcja 'isApproved()' jest kosztowna i nie powinna być oceniana bardziej niż jest to absolutnie konieczne – bkwdesign

Powiązane problemy