2つの条件のいずれかがtrueの場合、visibleプロパティをtrueにバインドしたいと思います。次のようなもの
<tr data-bind="visible: active || $parent.displayDeactive">....</tr>
||他のバインディングを実行するとコードが機能しますが、||を実行すると機能しませんそこで。このバインディングにロジックを配置できるというドキュメントは見つかりませんでしたが、直接実行できない場合は、テンプレートのプロパティと$の1つのオブジェクトをバインドしているので、それを行うための最適な方法は何ですか?親ビューモデル。
式でオブザーバブルの値を使用している場合は、それらを関数として参照する必要があります。したがって、active
とdisplayDeactive
が観測可能であれば、次のようにします。
data-bind="visible: active() || $parent.displayDeactive()"
ビューモデルに移動するにはいくつかの方法があります。
バインディングのロジックのサンプルと親の関数の使用: http://jsfiddle.net/rniemeyer/f6ZgH/
それらを評価しているので、オブザーバブルの後に括弧を追加します。
<input type="checkbox" data-bind="checked:displayDeactive"> Display deactive</input>
<br/><br/>
<table>
<tbody data-bind="foreach: products">
<tr data-bind="visible: active() || $parent.displayDeactive()">
<td><span data-bind="text:name"></span></td>
</tr>
</tbody>
</table>
ここで完全なコードを見つけることができます: http://jsfiddle.net/johnpapa/gsnUs/
式を評価するテンプレート化されたアイテムで計算されたプロパティを使用できます(@RPNiemeyerもそれで応答したのを見ただけです...私は+1しました)。