角度触发器调用停止键入

时间:2017-07-18 13:08:50

标签: angular

我想在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 ...)这样做。这些数字与毫秒无关。我怎样才能使它发挥作用?

1 个答案:

答案 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);
}