使用$ timeout限制Angularjs 1.2 Search应用程序中发出的HTTP请求的数量

BigglesWorth先生

我正在做一个具有ng-model findSearchValue的超类型样式表单,当用户键入输入时,我会观察它,并在更新时触发搜索功能。我遇到的问题是,当用户键入一个单词(例如Spaceship)时,该功能会触发9个对Spaceship的请求单词中的每个字母1。

我尝试使用超时,但是所有这些操作都是等待900ms,然后触发所有9个请求。可以确保仅在用户停止键入给定时间后才触发请求。

这是我当前的代码:

$scope.findSearchValue = '';

$scope.getFindResults = function(findSearchValue) {
  if ($scope.findSearchValue.length > 2) {
    $timeout(function(){
      $http.get('/search.json?term=' + $scope.findSearchValue).success(function(data) {
        $scope.findResults = data;
        $scope.showSearchResults = true;
      });
    }, 900);
  } else {
    $scope.showSearchResults = false;
  }
};

$scope.$watch('findSearchValue',  function(newValue, oldValue) {
  if (newValue !== oldValue) {
    $scope.getFindResults();
  }
});

另外,我知道有很多处理此用例的指令。我不希望安装大指令只是为了做那么小的事情。谢谢

杰克

听起来好像您想消除抖动您应该删除多余的$timeout代码,然后执行以下操作:

ng-model-options="{ debounce: 900 }"

在元素上。

编辑:如下文注释中所述,以上要求使用Angularjs 1.3。如果您需要防抖动但无法升级angularjs安装,请尝试执行以下操作:github.com/shahata/angular-debounce

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用http在angular2中发出放置请求?

来自分类Dev

如何使用http在angular2中发出放置请求?

来自分类Dev

如何在Java Spring应用程序中缓存使用Netflix的Feign库发出的HTTP请求

来自分类Dev

使用PHP发出HTTP / 2请求

来自分类Dev

将2个过滤器应用于集合,但仅使用1个(AngularJS)

来自分类Dev

将2个过滤器应用于集合,但仅使用1个(AngularJS)

来自分类Dev

如何在带有 Webpack 的 AngularJS 应用程序 (1.x) 上使用 TypeScript

来自分类Dev

在Android应用程序中发出HTTP请求的策略

来自分类Dev

将Java应用程序的CPU使用率限制为特定数量

来自分类Dev

将Java应用程序的CPU使用率限制为特定数量

来自分类Dev

有没有办法限制 c++ 应用程序使用的 CPU 数量

来自分类Dev

在angularjs中使用dropdown1填充下拉列表2

来自分类Dev

在我的应用程序中使用$ timeout

来自分类Dev

如何丑化AngularJS 2 Typescript应用程序文件并使用Gulp进行生产发布

来自分类Dev

使用Symfony2 API对AngularJs应用程序进行身份验证

来自分类Dev

使用Symfony2 API对AngularJs应用程序进行身份验证

来自分类Dev

我可以在 angularJS 应用程序中使用 angular material 2 吗?

来自分类Dev

使用Angularjs的URL限制

来自分类Dev

使用JwtBearerAuthentication在aspnet5 rc1 Web API2标识3中发出刷新令牌

来自分类Dev

在 AngularJS 中将 $http 或 $timeout 与 $stateProvider 一起使用

来自分类Dev

在yii2应用中发出GET请求

来自分类Dev

1个MySQL发出2个请求

来自分类Dev

同时使用Spark 2应用程序

来自分类Dev

使用参数在iOS中发出HTTP Get请求

来自分类Dev

使用Prometheus测量.NET应用程序的传出HTTP请求

来自分类Dev

谁能看到我的应用程序正在使用的后台网址。就像使用凌空抽空发出的http请求一样。

来自分类Dev

Angularjs,Directive使用首先发出http请求的服务

来自分类Dev

可以在 WSO2 Stream Processor 4.0 上部署的 siddhi 应用程序的数量是否有任何限制

来自分类Dev

如何在AngularJS 2.0中发出HTTP请求

Related 相关文章

  1. 1

    如何使用http在angular2中发出放置请求?

  2. 2

    如何使用http在angular2中发出放置请求?

  3. 3

    如何在Java Spring应用程序中缓存使用Netflix的Feign库发出的HTTP请求

  4. 4

    使用PHP发出HTTP / 2请求

  5. 5

    将2个过滤器应用于集合,但仅使用1个(AngularJS)

  6. 6

    将2个过滤器应用于集合,但仅使用1个(AngularJS)

  7. 7

    如何在带有 Webpack 的 AngularJS 应用程序 (1.x) 上使用 TypeScript

  8. 8

    在Android应用程序中发出HTTP请求的策略

  9. 9

    将Java应用程序的CPU使用率限制为特定数量

  10. 10

    将Java应用程序的CPU使用率限制为特定数量

  11. 11

    有没有办法限制 c++ 应用程序使用的 CPU 数量

  12. 12

    在angularjs中使用dropdown1填充下拉列表2

  13. 13

    在我的应用程序中使用$ timeout

  14. 14

    如何丑化AngularJS 2 Typescript应用程序文件并使用Gulp进行生产发布

  15. 15

    使用Symfony2 API对AngularJs应用程序进行身份验证

  16. 16

    使用Symfony2 API对AngularJs应用程序进行身份验证

  17. 17

    我可以在 angularJS 应用程序中使用 angular material 2 吗?

  18. 18

    使用Angularjs的URL限制

  19. 19

    使用JwtBearerAuthentication在aspnet5 rc1 Web API2标识3中发出刷新令牌

  20. 20

    在 AngularJS 中将 $http 或 $timeout 与 $stateProvider 一起使用

  21. 21

    在yii2应用中发出GET请求

  22. 22

    1个MySQL发出2个请求

  23. 23

    同时使用Spark 2应用程序

  24. 24

    使用参数在iOS中发出HTTP Get请求

  25. 25

    使用Prometheus测量.NET应用程序的传出HTTP请求

  26. 26

    谁能看到我的应用程序正在使用的后台网址。就像使用凌空抽空发出的http请求一样。

  27. 27

    Angularjs,Directive使用首先发出http请求的服务

  28. 28

    可以在 WSO2 Stream Processor 4.0 上部署的 siddhi 应用程序的数量是否有任何限制

  29. 29

    如何在AngularJS 2.0中发出HTTP请求

热门标签

归档