バインディングのほとんどがパラメーターをブール値に変換しようとすることに留意する必要があります。実際にはブール値ではない値を与えると、それは真実またはfalsyとしてゆるく解釈されます。これは、ゼロ以外の数字と非ヌルオブジェクトと非空白の文字列がすべて真であると解釈されるのに対し、ゼロ、ヌル、未定義、および空の文字列は偽と解釈されることを意味します。
あるタイプのデータバインディングを使用する方法を理解している場合、他のタイプのデータバインディングは非常に簡単に学ぶ必要があります。次に、説明と短い例を提供することで、それぞれを説明します。
前のチュートリアルで観測可能性を扱う際に、すでにテキストの拘束力があることがわかりました。関連する要素のテキストをパラメーターの値に設定します。これは、DOM要素のInnerText(IE)またはTextContent(その他のブラウザ用)プロパティを設定することに相当します。パラメーターが数字または文字列以外のものである場合、バインディングはtoString()の結果を要素に割り当てます。
このパラメーターが観測可能な値である場合、バインディングは値が変更されるたびに要素のテキストを更新します。パラメーターが観察できない場合、要素のテキストを1回だけ設定し、後で再度更新しません。これは、すべてのバインディングに有効です。
値バインディングは、関連する要素の値をパラメーターの値に設定します。これは通常、入力、Select、Textareaなどのフォーム要素に使用されます。ユーザーが関連するフォームコントロールで値を編集すると、ビューモデルの値を更新します。同様に、ビューモデルの値を更新すると、画面上のフォームコントロールの値が更新されます。これは双方向結合として知られています。パラメーターが数字または文字列以外のものである場合、バインディングはtoString()の結果を要素に割り当てます。
デフォルトでは、ノックアウトは、ユーザーが変更イベントで別のDOMノードに焦点を合わせたときにビューモデルを更新しますが、以下のValueUpDateパラメーターを使用して値を更新すると制御できます。バインディングにもValueUpDateというパラメーターが含まれている場合、これは変更を検出するために使用するブラウザイベントノックアウトを定義します。