複数のブール値にバインドする場合、ノックアウトを使用することは可能ですか?
そのような
<div data-bind="if: (property.aTrueValue && property.anotherTrueValue)">...
さまざまな構文を試しましたが、正しい構文が見つからないようです。それが可能かどうかはわかりません。
複数のブール値にバインドする場合、ノックアウトを使用することは可能ですか?
そのような
<div data-bind="if: (property.aTrueValue && property.anotherTrueValue)">...
さまざまな構文を試しましたが、正しい構文が見つからないようです。それが可能かどうかはわかりません。
Knockout がバインディングを処理するとき、最初に式を評価します。
式の結果がオブザーバブルになる場合、オブザーバブルを便宜上評価して、if: が機能する最終値を取得します。
したがって、次の2つは同じように機能します
<div data-bind="if: foo"></div>
<div data-bind="if: foo()"></div>
オブザーバブルで終わる単純な式の世界を離れると、おそらく砂糖を置き去りにして、常にオブザーバブルを自分で評価したいと思うでしょう(他に何もなければ正気のために)。
以下を試してください
<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">...
できます - if バインディングは任意の式を取ります。そのようなオブザーバブルの値を参照するだけでなく、実際にオブザーバブルを次のように呼び出す必要があります。
<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">...
これが動作するjsfiddleです。
現在のソリューションは次のようになります。
<div data-bind="if: (prop() === true && prop2() === true)">...