मेरे पास ReactiveFormsModule के आधार पर फॉर्म सत्यापन निम्नानुसार है। हकीकत में, कुछ और मान्य हैं और प्रत्येक के लिए सत्यापनकर्ताओं की सूची लंबी है (हालांकि मूल रूप से प्रत्येक के लिए समान है)।
constructor(private builder: FormBuilder) {
this.form = builder.group({
"firstName": ["", [Validators.required, Validators.minLength(3)]],
"lastName": ["", [Validators.required, Validators.minLength(3)]]
});
}
यह मुझे परेशान करता है कि यह बहुत क्रियात्मक है और मुझे आश्चर्य है कि क्या सभी सत्यापनकर्ताओं को एक साथ तोड़ने का एक साफ तरीका है और किसी भी तरह इसका एक, एकल उदाहरण होने दें।
2 जवाब
जिस तरह से मैं देखता हूं, आपके पास परेशान करने के दो आयाम हैं - फ़ील्ड का सेट मान्य (ऊर्ध्वाधर आकार) और सत्यापन का सेट (क्षैतिज आकार)? जबकि @ n00dl3 दोनों आयामों में कटौती (और आलोचना) पर चर्चा करता है, मैं दृढ़ता से सुझाव देता हूं कि आप केवल बाद वाले (यानी क्षैतिज) पर काम करें।
constructor(private builder: FormBuilder) {
const validation = [Validators.required, Validators.minLength(3)];
this.form = builder.group({
"firstName": ["", validation],
"lastName": ["", validation]
});
}
इसके अलावा, मुझे संदेह है कि आप उस बिंदु पर पहुंचेंगे जहां पैरामीटरयुक्त सत्यापन की आवश्यकता है। ऐसे मामले में, आप ऐसे फ़ंक्शन पर स्विच करने पर विचार कर सकते हैं जो उपयुक्त सत्यापन लाता है।
constructor(private builder: FormBuilder) {
this.form = builder.group({
"firstName": ["", validation(1)],
"lastName": ["", validation(2)]
});
}
validation(type: number) : Validations {
if(type === 1)
return [Validations.required];
return [Validators.required, Validators.minLength(3)];
}
यदि आपके फ़ील्ड में समान सत्यापनकर्ता हैं तो आप अपनी चाबियों के लिए केवल एक सरणी का उपयोग कर सकते हैं और इसे इस तरह कम कर सकते हैं:
const fields=["firstName","lastName"]
let myGroup = fields.reduce((group,field)=>{
return group[field]=["",[Validators.required,Validators.minLength(3)]]
},{} as {[k:string]:any});
this.form = builder.group(myGroup);
अगर कुछ फ़ील्ड में अलग-अलग सत्यापनकर्ता हैं तो आप बाद में भी सेट कर सकते हैं:
this.form.get("myField").setValidators([someValidator]);
लेकिन ध्यान दें कि IMHO आप पठनीयता खो देते हैं।
संबंधित सवाल
नए सवाल
forms
एक रूप अनिवार्य रूप से एक कंटेनर है जिसका उपयोग कई प्रकार के डेटा के किसी भी उपसमूह की किसी भी राशि को रखने के लिए किया जा सकता है। HTML फॉर्म का उपयोग किसी सर्वर में डेटा पास करने के लिए किया जाता है। VB और C # फॉर्म वे विंडो हैं जिनका उपयोग उपयोगकर्ता के साथ बातचीत करने के लिए किया जाता है।