2

こんにちは、valueUpdate: afterkeydown はユーザー入力後にモデルの更新を行いますが、他の JavaScript コードが値を変更した後に自動的に valueUpdate を行う方法を知りたいです。

document.getElementById("input").value = "new value"; を行う js コードがあります。

モデルを手動で更新する必要がありますか、またはどの valueUpdate を使用する必要がありますか。

4

2 に答える 2

5

要素のイベントをトリガーするchangeと、要素のバインディング ( value) が変更を取得し、通常どおりに処理します。

ただし、通常は、ビュー モデルを介して更新を行い、要素のプロパティの設定をバインディングに処理させたいと考えますが、変更できない要素と直接対話するサード パーティまたは既存のコードがある場合、changeイベントのトリガーは解決。

Knockout には、イベントを適切にトリガーするためのユーティリティが含まれていますko.utils.triggerEvent

コードは次のようになります。

   var elem = document.getElementById("input");
   elem.value = "new value";
   ko.utils.triggerEvent(elem, "change");
于 2012-11-29T19:38:48.627 に答える
1

入力値を更新する行の後、変更している入力に対応するオブザーバブルで observable.valueHasMutated() を呼び出します。

于 2012-11-29T19:07:14.847 に答える