2013-10-07 9 views
22

मैं निम्नलिखित बहु चयन बॉक्स है:एनजी-आवश्यक का उपयोग कर बनाम आवश्यक

<select 
    multiple="multiple" 
    data-ng-model="rightSelected" 
    data-ng-options="slide as slide.SlideBarcode for slide in form.Slides" 
    data-ng-required="form.Slides.length > 0" 
/> 

मेरी नियंत्रक में मैं प्रारंभ में ऐसा करते हैं:

$scope.form.Slides = []; 

मैं फार्म के इस तत्व मान्य होना चाहता हूँ अगर स्लाइड सरणी में स्लाइड हैं। ये गतिशील रूप से जोड़े गए हैं- यह एक प्रकार की स्लाइड बाल्टी उपयोगकर्ता स्लाइड जोड़ सकता है।

लेकिन मुझे यह नहीं मिल रहा है कि ngRequired सामग्री कैसे काम करती है ... अगर मैं इसे data-ng-required="true" में बदलता हूं तो मेरा फॉर्म ठीक दिखता है, लेकिन निश्चित रूप से यह वही नहीं करता जो मैं चाहता हूं। अगर मैं form.Slides.length > 0 का उपयोग करता हूं जो कि मैं वास्तव में जो चाहता हूं उसकी जांच कर रहा हूं, न केवल यह काम करता है, बल्कि यह मेरे रूप की संरचना के साथ गड़बड़ करता है, मेरे तत्वों में से एक यादृच्छिक रूप से गायब हो जाता है।

इसका उपयोग करने का सही तरीका क्या है? इस पर दस्तावेज़ बहुत स्पष्ट हैं। इस पोस्ट के बाहर

+0

जब तक आप एक वैध स्थिति में नहीं हैं, तब तक सबमिट बटन को अक्षम या छुपाकर आप इस मुद्दे को हटा सकते हैं, दूसरे शब्दों में उपयोगकर्ताओं को अमान्य डेटा सबमिट करने से रोकते हैं। ' सबमिट करें 'फिर, अपने $ स्कोप पर' formIsValid()' विधि जोड़ें जो ng-model – Jason

+0

हम्म की स्थिति की जांच करता है, मुझे यकीन नहीं है यह काम करेगा- ऐसे कई अन्य फॉर्म तत्व हैं जिन्हें मुझे सत्यापित करने की आवश्यकता है। मैं पहले से ही सबमिट बटन पर 'data-ng-disabled =" myForm। $ अवैध "का उपयोग करता हूं। किंडा को यह सब कुछ 'formIsValid()' विधि में प्रबंधित करने के लिए अच्छा नहीं है। या शायद मैं उस विधि में 'myForm। $ अमान्य' का उपयोग कर सकता हूं? मैं इसमें जांच करूंगा। – Nicros

उत्तर

25

की जांच:

What is the difference between required and ng-required?

मैं क्या लगता है कि तुम क्या करने की कोशिश कर रहे हैं से, मैं आप उपयोग कर रहे लगता है एनजी-आवश्यक गलत जोड़कर देखते हैं। एनजी-आवश्यक विशेषता तब होती है जब आप सशर्त रूप से इनपुट की आवश्यकता होती है या नहीं। मैं आपके मामले में अनुमान लगा रहा हूं कि आप हमेशा उस इनपुट की आवश्यकता चाहते हैं।

अपनी टिप्पणी के अनुसार, अगर आप किसी भी कार्यों के लिए प्रबंधित करने के लिए नहीं करना चाहते हैं, मैं इन सभी का एक समारोह जाते थे

$scope.isFormValid= function(){ 
    if (form.Slides.length > 0 && myForm.$valid) 
     return true; 
} 

और फिर

ng-disabled="isFormValid()" 

यह नहीं हो सकता है सबसे सुरुचिपूर्ण समाधान लेकिन यह काम करता है। मुझे बताएं कि क्या वह नहीं है जो आप चाहते थे।

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