कोणीय: वैलिडेटर्स फॉर्मकंट्रोल के मौजूदा सेट में जोड़ें

Nov 26 2020

मैं फॉर्मकंट्रोल पर मान्यकर्ताओं के मौजूदा सेट को कैसे जोड़ या पुश कर सकता हूं? मैं एक सरणी के रूप में जोड़ना चाहता हूं। निम्नलिखित उत्तर केवल उन सभी को एक बार में सेट करेगा।

नियंत्रण बनाए जाने के बाद, कोणीय में, वाल्डिएटर को फॉर्मकंट्रोल में कैसे जोड़ा जाए?

कोणीय - डायनामिक रूप से सत्यापनकर्ताओं को जोड़ / हटा दें

newFormControl.setValidators([Validators.required])
newFormControl.setValidators([Validators.pattern("^[0-9]*$")])
newFormControl.setValidators([Validators.maxLength])

जवाब

GyörgySzy Nov 26 2020 at 15:21

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)
    }

तो इस तरह से आपको उन्हें एक-एक करके सेट करने की आवश्यकता नहीं है।

(जैसा कि सत्यापनकर्ता सेटिस्लाइड सेटिलेटर्स () में एक सरणी में संग्रहीत नहीं हैं, आपको केवल एक कॉल के साथ सभी सत्यापनकर्ताओं को सेटवैलिडेटर्स में भेजना होगा।)

Noname Nov 27 2020 at 10:03

आप एक सरणी के साथ सेट कर सकते हैं 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));