2013-03-09 36 views

回答

44

當Knockout處理你的綁定時,它首先評估你的表情。

如果表達式導致可觀察項,那麼它會評估觀察值以方便獲取if:工作的最終值。

於是兩人以下工作相同

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

一旦你離開可觀察結束簡單表達式的世界中,你可能也想留下的糖分和總自己評估觀測(對於理智,如果沒有其他)。

請嘗試以下

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

謝謝,這正是我需要做的。 – 2013-03-11 14:06:48

3

你可以 - 如果在綁定只是需要任意表達式。當這樣做不僅僅是引用可觀察到的那樣的值,你需要實際調用觀察到,像這樣:

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

這裏的工作jsfiddle