Apa perbedaan antara required
dan ng-required
(validasi formulir)?
Apa perbedaan antara required
dan ng-required
(validasi formulir)?
Jawaban:
Elemen formulir AngularJS mencari required
atribut untuk melakukan fungsi validasi. ng-required
memungkinkan Anda untuk menetapkan required
atribut tergantung pada tes boolean (misalnya, hanya memerlukan bidang B - katakanlah, nomor siswa - jika bidang A memiliki nilai tertentu - jika Anda memilih "siswa" sebagai pilihan )
Sebagai contoh, <input required>
dan <input ng-required="true">
pada dasarnya hal yang sama
Jika Anda bertanya-tanya mengapa demikian, (dan bukan hanya membuat <input required="true">
atau <input required="false">
), hal ini disebabkan oleh keterbatasan HTML - required
atribut tidak memiliki nilai yang terkait - kehadirannya hanya berarti (sesuai standar HTML) sehingga elemen tersebut diperlukan - jadi angular membutuhkan cara untuk mengatur / membatalkan nilai yang diperlukan ( required="false"
akan menjadi HTML yang tidak valid)
<form method="post" action="/foo" novalidate>
. Sekali lagi, ini adalah atribut html5, tidak terkait dengan angularJS.
ng-required
menunjuk ke variabel lingkup / pengontrol, Angular memantaunya untuk perubahan dan mengatur atribut yang diperlukan. Sedangkan dalam hal required
atribut HTML sederhana Anda tidak memiliki fleksibilitas semacam itu. Tidak? Dan sementara kita berada di topik yang sama, bagaimana ng-attr-required
? Apakah persis sama dengan ng-required
?
Saya ingin membuat addon untuk jawaban tiago :
Misalkan Anda menyembunyikan elemen menggunakan ng-show
dan menambahkan required
atribut yang sama:
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
akan melempar kesalahan seperti:
Kontrol formulir yang tidak valid dengan nama = '' tidak dapat fokus
Ini karena Anda tidak dapat memaksakan required
validasi pada hidden
elemen. Menggunakan ng-required
membuatnya lebih mudah untuk menerapkan validasi yang diperlukan secara kondisional yang luar biasa !!
ng-if
alih-alih ng-show
/ ng-hide
untuk menghindari masalah potensial itu.
The atribut HTML required="required"
adalah pernyataan memberitahu browser bidang ini diperlukan agar bentuk yang akan berlaku. ( required="required"
adalah bentuk XHTML, hanya menggunakan required
yang setara)
The sudut atribut ng-required="yourCondition"
berarti 'isRequired (yourCondition)' dan set atribut HTML dinamis untuk Anda tergantung pada kondisi Anda.
Perhatikan juga bahwa versi HTML membingungkan , tidak mungkin untuk menulis sesuatu yang kondisional seperti required="true"
atau required="false"
, hanya kehadiran atribut yang penting (present berarti true)! Di sinilah Angular membantu Anda ng-required
.