ng-change にバインドされた再クエリ機能を備えた検索入力フィールドがあります。
<input ng-model="search" ng-change="updateSearch()">
しかし、これはすべてのキャラクターに対してあまりにも早く発動します。そのため、私は次のようなことを頻繁に行うことになります。
$scope.updateSearch = function(){
$timeout.cancel(searchDelay);
searchDelay = $timeout(function(){
$scope.requery($scope.search);
},300);
}
ユーザーが入力を止めてから 300 ミリ秒後にのみリクエストが行われるようにします。これをディレクティブでラップする解決策はありますか?
ベストアンサー1
Angular 1.3では、これを実現するのがはるかに簡単になりました。ngモデルオプション:
<input ng-model="search" ng-change="updateSearch()" ng-model-options="{debounce:3000}">
Syntax: {debounce: Miliseconds}