ng-change の遅延をカプセル化する Angular ディレクティブ 質問する

ng-change の遅延をカプセル化する Angular ディレクティブ 質問する

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}

おすすめ記事