ความแตกต่างระหว่างrequired
และng-required
(การตรวจสอบแบบฟอร์ม) คืออะไร?
ความแตกต่างระหว่างrequired
และng-required
(การตรวจสอบแบบฟอร์ม) คืออะไร?
คำตอบ:
องค์ประกอบแบบฟอร์ม AngularJS ค้นหาrequired
คุณลักษณะเพื่อดำเนินการฟังก์ชันการตรวจสอบความถูกต้อง ng-required
อนุญาตให้คุณตั้งค่าแอrequired
ททริบิวต์โดยขึ้นอยู่กับการทดสอบบูลีน (ตัวอย่างเช่นต้องการเฉพาะฟิลด์ B - พูด, หมายเลขนักเรียน - หากฟิลด์ A มีค่าบางค่า - หากคุณเลือก "นักเรียน" เป็นตัวเลือก )
เป็นตัวอย่าง<input required>
และ<input ng-required="true">
เป็นสิ่งเดียวกัน
หากคุณสงสัยว่าทำไมจึงเป็นเช่นนี้ (และไม่ใช่แค่สร้าง<input required="true">
หรือ<input required="false">
) มันเกิดจากข้อ จำกัด ของ HTML - required
แอตทริบิวต์ไม่มีค่าที่เกี่ยวข้อง - การมีอยู่ของมันหมายถึง (ตามมาตรฐาน HTML) ที่องค์ประกอบนั้นจำเป็นต้องมี - ดังนั้นเชิงมุมต้องการวิธีตั้งค่า / ยกเลิกค่าที่ต้องการ ( required="false"
เป็น HTML ที่ไม่ถูกต้อง)
<form method="post" action="/foo" novalidate>
แอตทริบิวต์: นี่เป็นแอตทริบิวต์ html5 ซึ่งไม่เกี่ยวข้องกับ angularJS
ng-required
ชี้ไปที่ตัวแปรขอบเขต / ตัวควบคุมแองกูลาร์จะตรวจสอบการเปลี่ยนแปลงและตั้งค่าแอตทริบิวต์ที่จำเป็นตามลำดับ ในขณะที่ในกรณีของrequired
คุณลักษณะHTML อย่างง่ายคุณไม่มีความยืดหยุ่นเช่นนั้น ไม่มี? และในขณะที่เรากำลังในหัวข้อเดียวกันสิ่งที่เกี่ยวกับng-attr-required
? มันเหมือนกับng-required
หรือไม่
ฉันต้องการที่จะทำ addon สำหรับคำตอบของ tiago :
สมมติว่าคุณซ่อนองค์ประกอบโดยใช้ng-show
และเพิ่มrequired
แอตทริบิวต์ในรายการเดียวกัน:
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
จะโยนข้อผิดพลาดบางอย่างเช่น:
การควบคุมฟอร์มไม่ถูกต้องพร้อมชื่อ = '' ไม่สามารถโฟกัสได้
นี่เป็นเพราะคุณไม่สามารถกำหนดค่าrequired
การตรวจสอบความถูกต้องกับhidden
องค์ประกอบได้ ใช้ng-required
ทำให้ง่ายต่อการตามเงื่อนไขนำไปใช้ตรวจสอบความถูกต้องซึ่งจะน่ากลัวเพียง !!
ng-if
แทนng-show
/ ng-hide
เพื่อก้าวเท้าเลี่ยงปัญหาที่อาจเกิดขึ้นได้
แอตทริบิวต์ HTML required="required"
เป็นคำสั่งที่บอกเบราว์เซอร์ที่ข้อมูลนี้เป็นสิ่งจำเป็นเพื่อให้รูปแบบที่ถูกต้อง ( required="required"
เป็นรูปแบบ XHTML เพียงใช้required
เทียบเท่า)
เชิงมุมแอตทริบิวต์ ng-required="yourCondition"
หมายถึง 'isrequired (yourCondition)' และชุดแอตทริบิวต์ของ HTML แบบไดนามิกสำหรับคุณขึ้นอยู่กับสภาพของคุณ
โปรดทราบว่าเวอร์ชัน HTML กำลังสับสนคุณไม่สามารถเขียนสิ่งที่มีเงื่อนไขเช่นเดียวกับrequired="true"
หรือrequired="false"
มีเพียงแอตทริบิวต์ที่ปรากฏเท่านั้น (ปัจจุบันหมายถึงจริง)! ng-required
นี่คือที่เชิงมุมจะช่วยให้คุณออกด้วย