Cara berbeda untuk menangani kasus tersebut adalah dengan menggunakan formControl dan berlangganan valueChanges
ketika komponen Anda diinisialisasi, yang akan memungkinkan Anda untuk menggunakan operator rxjs untuk persyaratan lanjutan seperti melakukan permintaan http, menerapkan debounce sampai pengguna selesai menulis kalimat, mengambil nilai terakhir dan hapus sebelumnya, ...
import {Component, OnInit} from '@angular/core';
import { FormControl } from '@angular/forms';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
@Component({
selector: 'some-selector',
template: `
<input type="text" [formControl]="searchControl" placeholder="search">
`
})
export class SomeComponent implements OnInit {
private searchControl: FormControl;
private debounce: number = 400;
ngOnInit() {
this.searchControl = new FormControl('');
this.searchControl.valueChanges
.pipe(debounceTime(this.debounce), distinctUntilChanged())
.subscribe(query => {
console.log(query);
});
}
}