2017-02-07 18 views
0

データがバインドされた検索バーが、afterkeydownを使用してグリッドに表示されています。しかし、バインディングはあまりに早く起こっています。ユーザーは、結果が入力される前に1回だけキーを押す時間があります。私は結果がロードされている間、ページとのやりとりを妨げるブロックUI要素を持っているので、結果がロードされるまで検索クエリが1文字で停止します。まもなく時間を延長して完全なクエリを入力できるように、別の方法を使用してください。あなたはrateLimitと呼ばれるエクステンダーを追加することができ、あなたのsearchTerm観測可能でKnockout.js - valueUpdate:afterkeydownが速すぎる

<input id="search-btn" class="form-control" 
    data-bind="value: searchTerm, valueUpdate: 'afterkeydown'" /> 
+0

。 –

答えて

1

。これにより、値が更新される前に遅延が追加されます。 SEARCHTERM、valueUpdate:「afterkeydown'`、より良い `にtextInput使用する:searchTerm`をむしろ値`より

searchTerm = ko.observable(...).extend({ 
    rateLimit: { 
     timeout: 800, method: "notifyWhenChangesStop" 
    }, 
}); 

Reference

+0

ありがとう、どこにこれを置くことができますか? searchTerm observableを定義するときは? – noclist

+0

はい、最初にobservableを定義したとき、またはsearchTerm.extend(...)を使用して後で定義するときに追加できます –

関連する問題