これが私の問題を説明する小さなサンプルコードです:http://jsfiddle.net/wsytR/2/
入力のテキストを変更してからTabキーを押してぼかしを入れると、値が古いものに戻ります。throttle
これは、期間が終了する前にフォーカスを切り替えた場合に発生します。観測量はこのようにまったく変化していないように私には思えます。
私はこの質問を見つけ、それからこの問題に到達しました。バインディングを並べ替えてhasfocus
最初のバインディングにしましたが、運が悪かったです。
また、タブを押してフォーカスを切り替える代わりに、エスケープを押すか、ページ上の別の場所をクリックすると、古い値が再び復元されますが、スロットル期間が終了すると、オブザーバブルが更新され、値が再び変更されます。今回は新しい値になります。 1。おそらく、タブとエスケープ/クリックによって別の種類のイベントがトリガーされます。
ノックアウトでこれを処理する方法はありますか?私は何か間違ったことをしようとしていますか、それともノックアウトで機能することが期待されるべきではないことをしようとしていますか?
編集:
質問を正しく定式化していないことがわかりました。モデルからフォーカスを設定する必要があるため、バインディングを調整しhasfocus
ても問題は解決しません。要素を離れた後、スロットルを維持した後で適切に更新する必要がある場合は、それがうまく機能します。
私の目標は、フォーカスを失ったときにすぐに更新を取得することですが、それ以外の場合は、入力するまでバインディングを抑制します。