監視可能なオブジェクトの 1 つにサブスクライブ機能があります。サブスクライブ機能は、監視可能なオブジェクトに変更があった場合にのみ実行する必要があると思います。ただし、コードをトレースすると、初期化時に呼び出した後にコードが実行されていることがわかりko.applyBindings(MyViewModel);
ます。
ビューモデルで得たものは次のとおりです。
function MyViewModel(myModel){
this.myProperty = ko.observable(myModel.myProperty);
this.myProperty .subscribe(function (val) {
// do sth..
}, this);
}
ここで applyBindings を呼び出します。
jQuery(document).ready(
function ($) {
ko.applyBindings(MyViewModel);
});
これは予期される動作ですか?
サブスクライブ関数は の直後に呼び出されko.applyBindings(MyViewModel);
ています。つまり、その間 UI からの入力はありません。
myProperty の値が変更されるたびに、サブスクライブ関数本体のみを実行するようにしたいと思います。観測可能なオブジェクトを追跡して、変更がどこで発生しているかを確認する方法はありますか?