2013-03-09 10 views

Odpowiedz

44

Gdy Knockout przetwarza wiązania, najpierw ocenia ekspresję.

Jeśli wyrażenie daje w wyniku obserwowalne, następnie ocenia to, co można zaobserwować dla wygody, aby uzyskać końcową wartość, która jeśli: działa.

więc dwa następujące prace identycznie

<div data-bind="if: foo"></div> 
<div data-bind="if: foo()"></div> 

Po opuszczeniu świat prostych wyrażeń kończących się zauważalny, pewnie też chcą opuścić cukru tyle i zawsze oceniać obserwable siebie (do normalności jeśli nic jeszcze).

Spróbuj następującą

<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">... 
+0

Dzięki, właśnie to musiałem zrobić. –

3

można - if wiążące tylko bierze dowolny wyraz. Kiedy robi więcej niż tylko przedstawieniu wartość zauważalny tak, trzeba rzeczywiście wywołać obserwowalne tak:

<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">... 

Oto pracuje jsfiddle.

Powiązane problemy