как отправить запрос через две секунды в angularjs на событие keyup? - PullRequest
0 голосов
/ 04 ноября 2018

есть ли способ отправить запрос на сервер через две 2 секунды, когда пользователь перестанет вводить angularjs. Что-то вроде отстранение . Другими словами, если пользователь наберет "abc" и перестанет ждать две секунды чем попасть на сервер.

в настоящее время всякий раз, когда я набираю какой-либо символ, он запрашивает сервер вот мой код http://plnkr.co/edit/npiA2abAo5SEQFMMpKZO?p=preview

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope,$http) {
  $scope.name = 'World';


    $scope.keyupevt = function(){
      console.log('xx')
  $http.get("data.json")
    .then(function(response) {
        console.log(response)
    });
    }
});
  <body ng-controller="MainCtrl">
    <p>Hello {{name}}!</p>
    <input type="text"  ng-keyup="keyupevt()" />
  </body>

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Входные данные могут быть опровергнуты с помощью директивы ng-model-options:

  <body ng-controller="MainCtrl">
    <p>Hello {{name}}!</p>
    <input type="text"
           ng-model="name"
           ng-model-options="{ debounce: 2000 }"    
           ng-change="keyupevt()" />
  </body>

Для получения дополнительной информации см.

0 голосов
/ 04 ноября 2018

Использовать функцию setTimeout

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope,$http) {
$scope.name = 'World';


$scope.keyupevt = function(){

  setTimeout(function(){

     $http.get("data.json").then(function(response) 
     {
       console.log(response)
     }
     )}, 2000);//delay parameter of 2 seconds

  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...