Panduan Pengembang AngularJS - Formulir memberi tahu ada banyak gaya dan arahan tentang formulir dan bidang. Untuk masing-masing, kelas CSS:
ng-valid
ng-invalid
ng-pristine
ng-dirty
ng-touched
ng-untouched
Apa bedanya pristine/dirty
, dan touched/untouched
?
Jawaban:
Panduan Pengembang AngularJS - kelas CSS yang digunakan oleh AngularJS
sumber
$pristine
/$dirty
Memberitahu Anda apakah pengguna benar - benar mengubah apa pun, sementara$touched
/$untouched
memberi tahu Anda apakah pengguna hanya ada / dikunjungi .Ini sangat berguna untuk validasi. Alasannya
$dirty
adalah selalu menghindari menunjukkan tanggapan validasi sampai pengguna benar-benar mengunjungi kontrol tertentu. Tetapi, dengan hanya menggunakan$dirty
properti, pengguna tidak akan mendapatkan umpan balik validasi kecuali mereka benar-benar mengubah nilainya. Jadi, suatu$invalid
bidang masih tidak akan menampilkan permintaan kepada pengguna jika pengguna tidak mengubah / berinteraksi dengan nilai. Jika pengguna sepenuhnya mengabaikan bidang yang diperlukan, semuanya tampak OK.Dengan Angular 1.3 dan
ng-touched
, Anda sekarang dapat menetapkan gaya tertentu pada kontrol segera setelah pengguna kabur, terlepas dari apakah mereka benar-benar mengedit nilai atau tidak.Berikut adalah CodePen yang menunjukkan perbedaan dalam perilaku.
sumber
$setPristine
cukup buat formulir un-$dirty
. Saya pikir Anda mungkin mauform.setValidity()
. Lihat beberapa jawaban bermanfaat pada posting ini .Dalam Pro Angular-6 buku dirinci seperti di bawah ini;
tidak valid : Properti ini mengembalikan true jika konten elemen tidak valid dan salah sebaliknya.
murni : Properti ini mengembalikan true jika konten elemen belum diubah.
sumber
Perlu disebutkan bahwa properti validasi berbeda untuk formulir dan elemen formulir (perhatikan bahwa yang disentuh dan yang tidak tersentuh hanya untuk bidang):
sumber