2013-03-09 4 views
31

ノックアウトのif bindingを複数のブール値で使用することはできますか?このようなKnockout.js複数のブール値で "バインディングする場合"

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

として

私は別の構文の多くを試してみたが、右の構文を見つけるように見えることはできません。 私はそれが可能であるかどうかはわかりません。

答えて

44

ノックアウトでバインディングが処理されると、まず式が評価されます。

式が観測可能である場合、if:が作用する最終値を取得するための便宜として、observableを評価します。

だから、2次の作業の同一

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

あなたが観測可能で終わる簡単な表現の世界を離れたら、あなたはおそらくも何場合正気のために(背後に砂糖を残し、常に観測を自分で評価したいですelse)。

は、あなたができる次の

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

ありがとう、これはまさに私がする必要があったものです。 –

3

をお試しください - 結合は、単に任意の式を取る場合。ちょうどそのように観察の値を参照する以上のものをやったとき、あなたは実際にそうように観察を呼び出す必要があります:

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

はここで働いてjsfiddleです。

関連する問題