我想在Angular中重用我的工作jQuery
函数,该函数有两个函数,一个函数在keyup
上调用keydown
<input type="text" [(ngModel)]="filterOptions.SearchValue" (keyup)="onFilter($event)" (keydown)="resetCounter()" class="form-control">
这样每次keydown
都会重置计数器。但是这不起作用:
timer = 0;
onFilter(event: any) {
if (!HelperService.keypressFilter(event))
return;
console.log(this.timer);
clearTimeout(this.timer);
this.timer = setTimeout(this.resetValues(), 2000);
}
resetCounter(){
console.log(this.timer);
clearTimeout(this.timer);
console.log(this.timer);
}
3个控制台日志中的每一个在控制台中写入相同的号码,并且在每次按键后它们以递增的方式(即0 0 0,3 3 3,24 24 24 ...)这样做。这些数字与毫秒无关。我怎样才能使它发挥作用?
答案 0 :(得分:-1)
所以解决方案是使用Angular setTimeout()
函数:
timer: any;
onFilter(event: any) {
if (!HelperService.keypressFilter(event))
return;
clearTimeout(this.timer);
this.timer = setTimeout(() => { this.resetValues() }, 200)
}
resetCounter() {
clearTimeout(this.timer);
}