2016-10-20 7 views
22

मैंने देखा है कि अगर मैं एक कोणीय 2 प्रतिक्रियाशील रूप पर नियंत्रण अक्षम करता हूं तो नियंत्रण form.value में शामिल नहीं होता है। उदाहरण के लिए, अगर मैं नीचे की तरह मेरे रूप को परिभाषित:कोणीय 2 अक्षम नियंत्रण फॉर्म में शामिल नहीं होते हैं .value

this.notelinkingForm = new FormGroup({ 
    Enabled: new FormControl(settings.Enabled, Validators.required), 
    LinkToPreceeding: new FormControl({value: settings.LinkToPreceeding, disabled: !settings.Enabled}, Validators.required), 
    LinkingTolerance: new FormControl({value: settings.LinkingTolerance, disabled: !settings.Enabled}, Validators.required) 
}); 

और this.notelinkingForm.value जाँच, अगर सभी नियंत्रण तो सक्षम हैं, उत्पादन होगा:

{"Enabled":true, "LinkToPreceeding": true, LinkingTolerance:"100"} 
हालांकि

, जब से कुछ नियंत्रण अक्षम हैं:

{"Enabled":true} 

ध्यान दें कि अक्षम नियंत्रण को कैसे बाहर रखा गया है।

मेरा इरादा यह है कि जब फॉर्म बदलता है तो मैं फॉर्म को पास करने में सक्षम होना चाहता हूं। इसके बाकी एपीआई में सभी गुणों के साथ। यह स्पष्ट रूप से संभव नहीं होगा यदि इसमें अक्षम आइटम नहीं हैं।

क्या मुझे यहां कुछ याद आ रहा है या यह अपेक्षित व्यवहार है? क्या कोणीय को फॉर्म में अक्षम वस्तुओं को शामिल करने का कोई तरीका है। औसत?

अपने विचारों का स्वागत करते हैं।

उत्तर

42

आप उपयोग कर सकते हैं:

this.notelinkingForm.getRawValue() 

docs से:

आप, विकलांग स्थिति की परवाह किए बिना सभी मान शामिल इस विधि का उपयोग करना चाहते हैं तो। अन्यथा, value संपत्ति समूह के मूल्य को प्राप्त करने का सबसे अच्छा तरीका है।

+0

धन्यवाद, पूरी तरह से काम करता है – lankyplanks

0

एक अन्य विकल्प है कि मैं का उपयोग करें:

this.form.controls['LinkToPreceeding'].value;

संबंधित मुद्दे