2013-03-09 85 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

相关问题