Skip to content
On this page

Angular2中表单valueChanges防抖

在Angular中,可以使用rxjs的debounceTime操作符抖效果。debounceTime操作符延迟指定的时间,然后才将最新的值发布时间内有新的值产生,就会重新计时。

下面是一个示例,演示如何在Angular中使用debounceTime进行表单值的防抖处理:

ts
import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { debounceTime } from 'rxjs/operators';
ts
@Component({
  selector: 'app-example',
  template: `
    <input type="text" [formControl]="myControl">
  `
})
export class ExampleComponent implements OnInit {
  myControl: FormControl = new FormControl('');

  ngOnInit() {
    this.myControl.valueChanges
      .pipe(debounceTime(300)) // 设置防抖时间为300毫秒
      .subscribe(value => {
        // 在这里处理防抖后的表单值变化
        console.log(value);
      });
  }
}

上述示例中,通过订阅myControl的valueChanges属性,并使用pipe方法将debounceTime操作符应用于Observable流。在subscribe回调中,可以处理防抖后的表单值变化。

上次更新于: