我有一个input字段,我想在其中应用的变体ngChange。
input
ngChange
该input字段与ajax调用绑定在一起,当用户更改输入时,服务器端将处理数据,但是,我不想太频繁地进行调用。
假设用户要输入一个真正的字符串,我希望仅在用户完成将要键入的单词后才能进行呼叫。不过,我不想使用诸如模糊之类的事件。有什么比实现更好的方法setTimeout呢?
setTimeout
使用ng-model-options在角> 1.3
ng-model-options
<input type="text" ng-model="vm.searchTerm" ng-change="vm.search(vm.searchTerm)" ng-model-options="{debounce: 750}" />
没有ng-model-options-在标记中:
<input ng-change="inputChanged()">
在您的后备控制器/范围内
var inputChangedPromise; $scope.inputChanged = function(){ if(inputChangedPromise){ $timeout.cancel(inputChangedPromise); } inputChangedPromise = $timeout(taskToDo,1000); }
然后,您taskToDo将仅在1000ms不变后运行。
taskToDo