具有延时功能的输入触发器,当输入值发生变化时等待
Input trigger with delay function, wait if input value changes
我正在构建一个角指令,它在输入值更改上运行一个函数,我想在运行此函数之前等待300ms,但如果值在300ms之前发生变化,我需要将延迟重置为300ms。因此,只有当值改变300ms时,函数才应该运行:
我的代码
(function() {
'use strict';
angular
.module('address',[])
.directive('address', ['Address', function (Address) {
return {
restrict: 'E',
transclude: true,
templateUrl: 'partials/address.html',
link: function (scope, elem, attrs) {
var delay = "300";
scope.$watch('searchparam', function(){
if(!_.isUndefined(scope.searchparam) && scope.searchparam.length >= 3) {
// here i need some delay timer
Address.get(scope.searchparam).then(function(data){
console.log("data: ", data);
scope.addressList = data;
}, function(status){
console.log("status: ", status);
scope.errorHandler = status;
});
}
});
}
};
}]);
})();
地址。Get是一个异步服务,返回地址
你要做的是看看是否有问题。它包含在大多数JS库中。从AngularJS 1.3开始
您需要这样的内容:
var delay = "300"; // not needed, just pointing where to put the rest of the code :)
var timeout;
scope.$watch('searchparam', function(){
if(!_.isUndefined(scope.searchparam) && scope.searchparam.length >= 3) {
function getAddress() {
// do you stuff - Address.get(...
}
if (timeout) // try to clear the timeout if it was previously set
clearTimeout(getAddress);
timeout = setTimeout(getAddress, 300); // reset timer
相关文章:
- 如何在seleniumwebdriver中执行javascript提示并等待接受输入
- 如何自动启动javascript并让它等待输入
- Commander.js:脚本未等待用户输入
- 节点,SSh2服务器正在等待输入
- 使用生成器等待输入,然后再继续 forEach 循环的主体
- 如何在等待用户输入的同时暂停jQuery.ech()循环
- 寻找一个JS插件或jQuery函数,等待用户暂停输入文本字段,然后进行回调
- Javascript游戏:如何;“暂停”;while循环以等待用户输入
- Javascript等待动态输入
- 在node.js中等待用户输入
- JSJQuery -我如何摆脱提示,使程序等待用户的输入,然后对它作出反应
- 不等待输入框失去焦点的Onchange事件
- 在javascript中是否有任何方法可以暂停一个函数在中间等待输入
- chrome扩展:等待用户输入
- 在等待用户输入时停止
- 从正在等待输入的衍生进程中读取标准输出
- 使用JavaScript / jQuery "执行并等待用户输入
- 在更新之前等待输入
- href/button单击将否决下一步,并在不等待用户输入的情况下执行操作
- 在固定时间后停止等待输入