2015-06-08 10 views

回答

2

使用ngModelOptions您可以指定事件的自定義列表,將觸發模型更新和/或反彈延遲,以便實際更新只發生在計時器到期時;此計時器將在另一次更改發生後重置。

的index.html

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Example - example-example35-production</title> 


    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.4/angular.min.js"></script> 
    <script src="script.js"></script> 



</head> 
<body ng-app="debounceExample"> 
    <div ng-controller="ExampleController"> 
    <form> 
    Name: 
    <input type="text" ng-model="user.name" ng-model-options="{ debounce: 3000 }" /><br /> 
    </form> 
    <pre>username = "{{user.name}}"</pre> 
</div> 
</body> 
</html> 

的script.js

(function(angular) { 
    'use strict'; 
angular.module('debounceExample', []) 
    .controller('ExampleController', ['$scope', function($scope) { 
    $scope.user = {}; 
    }]); 
})(window.angular); 

可能是這個plnkr將有助於呃..嘗試這個......這裏,模型字段將被更新延遲3秒後,錯誤檢查將發生...

+0

不錯,我不知道這個功能。你能包含一個文檔鏈接嗎? – devqon

+0

https://docs.angularjs.org/api/ng/directive/ngModelOptions –

0

使用超時d在用戶編輯內容後重置它:

.controller("myCtrl", [ 
    "$timeout", 
    function ($timeout) { 
     var vm = this, 
      saveTime = 3000; 

     var saveTimeout; 

     function resetTimeout() { 
      if(saveTimeout) 
       saveTimeout.cancel(); 

      saveTimeout = $timeout(function() { 
       myFactory.save(vm.myModel); 
      }, saveTime); 
     } 

     $scope.$watch("vm.myModel", function() { 
      resetTimeout(); 
     }); 

     resetTimeout(); 
    }]); 
相關問題