angularjs - Angular 指令封装了 ng-change 的延迟

标签 angularjs angularjs-directive

我有一个搜索输入字段,其中的重新查询函数绑定(bind)到 ng-change。

 <input ng-model="search" ng-change="updateSearch()">

然而,这对每个 Angular 色来说都太快了。所以我最终做了很多这样的事情:

  $scope.updateSearch = function(){
    $timeout.cancel(searchDelay);
    searchDelay = $timeout(function(){
      $scope.requery($scope.search);
    },300);
  }

这样请求仅在用户停止输入后 300 毫秒发出。有什么解决方案可以将其包装在指令中吗?

最佳答案

从 Angular 1.3 开始,使用 ngModelOptions 更容易实现这一点。 :

<input ng-model="search" ng-change="updateSearch()" ng-model-options="{debounce:3000}">

Syntax:  {debounce: Miliseconds}

关于angularjs - Angular 指令封装了 ng-change 的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21121460/

相关文章:

javascript - NgCordova:Uncaught ReferenceError: $cordovaOauth 未定义

javascript - AngularJS:指令之间的通信

javascript - 当最初在范围内设置值时,日期选择器弹出格式不起作用

angularjs - Bootstrap popover 指令逻辑在 AngularJS 自定义指令中不起作用

AngularJS:如何等待 $resource 完成?

javascript - 在 Angular 中,你总是需要继承 Controller 中的服务变量吗?

javascript - 根据AngularJS中的日期返回各种字符串

javascript - Angular 1.2 可以工作,但 1.4 不行

angularjs - 在 Angular 指令中传递 ng 类条件

javascript - 如何在指令的情况下更改下拉列表的默认文本并对指令应用所需的验证