Acara perubahan hanya dipanggil setelah fokus input berubah. Bagaimana saya bisa membuatnya sehingga acara ini menyala pada setiap penekanan tombol?
<input type="text" [(ngModel)]="mymodel" (change)="valuechange($event)" />
{{mymodel}}
Ikatan kedua berubah pada setiap penekanan tombol btw.
Gunakan
ngModelChange
dengan memecah[(x)]
sintaks menjadi dua bagian, yaitu penyatuan data properti dan pengikatan acara:Ini juga berfungsi untuk tombol backspace.
sumber
Acara (keyup) adalah taruhan terbaik Anda.
Mari kita lihat mengapa:
Jadi (keyup) adalah yang paling aman untuk digunakan karena ...
sumber
keyup
pasti salah satu opsi paling aman, bagaimanapun,input
acara adalah selangkah lebih majukeyup
.keyup
tidak sepertiinput
, tidak berfungsi jika nilai kotak teks diubah dengan cara lain misalnya mengikat.(change)
samping solusi dan beberapa. Jawaban yang diterima benar-benar menyebalkan!(ngModelChange)
?sumber
keydown
ataukeyup
sebagai gantinya. Beberapa kunci tidak menyalakeypress
. Lihat juga stackoverflow.com/questions/4843472/…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, ...sumber
FormGroup
Acara rahasia yang membuat ngModel tetap sinkron adalah input panggilan acara . Karenanya jawaban terbaik untuk pertanyaan Anda adalah:
sumber
arsip .ts
sumber
Yang Anda cari adalah
Kemudian lakukan apa pun yang Anda inginkan dengan data dengan mengakses terikat
this.mymodel
di file .ts Anda.sumber
Dalam kasus saya, solusinya adalah:
sumber
Untuk Formulir Reaktif, Anda dapat berlangganan perubahan yang dibuat untuk semua bidang atau hanya bidang tertentu.
Dapatkan semua perubahan dari FormGroup:
Dapatkan perubahan bidang tertentu:
sumber
Saya telah menggunakan keyup pada bidang angka, tetapi hari ini saya perhatikan di chrome input memiliki tombol naik / turun untuk menambah / mengurangi nilai yang tidak dikenali oleh keyup.
Solusi saya adalah dengan menggunakan keyup dan ubah bersama:
Tes awal menunjukkan ini berfungsi dengan baik, akan memposting kembali jika ada bug yang ditemukan setelah pengujian lebih lanjut.
sumber