0

こんにちは、Knockout を使い始めました。私の目的では jQuery よりも簡単だからです。以前に jQuery を使用したことがありますが、コードがほとんど読めなくなりました。

私はこのJavaScriptビューモデルを持っています

function ovm() {
    this.delStreet = ko.observable("");
    this.deliveryNotSameAsInvoice = ko.observable(false);
    this.invStreet = ko.observable("");
}
ko.applyBindings(new ovm());

そしてこのHTML:

<label><input type="checkbox" data-bind="checked: deliveryNotSameAsInvoice" />if your invoice address is not the same as delivery</label>
<div id="delivery">
    <input type="text" placeholder="Street" 
        data-bind="value: delStreet, valueUpdate:'afterkeydown'" />
</div>
<div id="invoice" data-bind="visible: deliveryNotSameAsInvoice">
    <input type="text" placeholder="Street" 
        data-bind="value: invStreet, valueUpdate:'afterkeydown'" />
</div>
<hr/>
Delivery street: <span data-bind="text: delStreet"></span><br/>
Invoice street: <span data-bind="text: invStreet"></span><br/>

問題は、チェックボックスがオフになっている限り、invStreet に delStreet の値を持たせたいということです。ここで動作する jsFiddleがあり、条件付きバインディングに関する このSO の質問が見つかりまし たが、適切なコード サンプルが見つかりません。jqueryでは、キーアップイベントを各テキストボックスにバインドする必要があり、チェックボックスがオンになっているかどうかに応じて、いくつかのフィールドを設定する必要がありました。大変な作業でした。特により大きな「ビューモデル」では

4

1 に答える 1