कोणीय: वैलिडेटर्स फॉर्मकंट्रोल के मौजूदा सेट में जोड़ें
मैं फॉर्मकंट्रोल पर मान्यकर्ताओं के मौजूदा सेट को कैसे जोड़ या पुश कर सकता हूं? मैं एक सरणी के रूप में जोड़ना चाहता हूं। निम्नलिखित उत्तर केवल उन सभी को एक बार में सेट करेगा।
नियंत्रण बनाए जाने के बाद, कोणीय में, वाल्डिएटर को फॉर्मकंट्रोल में कैसे जोड़ा जाए?
कोणीय - डायनामिक रूप से सत्यापनकर्ताओं को जोड़ / हटा दें
newFormControl.setValidators([Validators.required])
newFormControl.setValidators([Validators.pattern("^[0-9]*$")])
newFormControl.setValidators([Validators.maxLength])
जवाब
SetValidators () पिछले सत्यापनकर्ताओं को याद रखता है, इसलिए आप अपने सत्यापनकर्ताओं को अलग से एकत्र करना चाहते हैं, और उदाहरण के लिए उन्हें दो चर में रख सकते हैं, और आवश्यकतानुसार एक setValidators () के साथ सेट कर सकते हैं।
const validators1 = [Validators.required, Validators.pattern("^[0-9]*$"), Validators.maxLength(10)])]
const validators2 = [Validators.required]
if( if_you_want_all_three_validators ){
newFormControl.setValidators(validators1)
} else {
// by default you want only one validator:
newFormControl.setValidators(validators2)
}
तो इस तरह से आपको उन्हें एक-एक करके सेट करने की आवश्यकता नहीं है।
(जैसा कि सत्यापनकर्ता सेटिस्लाइड सेटिलेटर्स () में एक सरणी में संग्रहीत नहीं हैं, आपको केवल एक कॉल के साथ सभी सत्यापनकर्ताओं को सेटवैलिडेटर्स में भेजना होगा।)
आप एक सरणी के साथ सेट कर सकते हैं new Array<ValidatorFn>();
, और सत्यापनकर्ताओं को व्यक्तिगत रूप से नीचे धकेल सकते हैं।
let validatorList = new Array<ValidatorFn>();
validatorList.push(Validators.required);
validatorList.push(Validators.pattern("^[0-9]*$"));
validatorList.push(Validators.maxLength(item.characterLimit));
newForm.addControl('test', new FormControl(d'5', validatorList));