2012-10-05 11 views
7

के साथ सत्यापन रणनीतियां मैं AngularJS का मूल्यांकन कर रहा हूं और अब तक मैं इसके बारे में बहुत उत्साहित हूं। लेकिन वहाँ कुछ सत्यापन के मोर्चे पर याद आ रही है: इस तरह के built-in mechanisms और AngularUI initiative के रूप में उपलब्ध विकल्प,, निर्देशों के माध्यम से प्रमाणकों को लागू करने और, जैसे, हर मान्यता को ध्यान में रखते घोषित किया जाना चाहिए:AngularJS

<form ng-controller="SomeController"> 
    <!-- Notice the 'required' attribute directive below: --> 
    <input type="text" ng-model="user.name" name="uName" required /> 
</form> 

इस उदाहरण में, दृश्य परिभाषित कर रहा है कि user.name आवश्यक है। यह कहने जैसा है कि दृश्य मॉडल के उचित आकार को परिभाषित करता है। क्या यह थोड़ा पीछे नहीं है? क्या यह विचार राज्यों को प्रतिबिंबित नहीं करना चाहिए, जिसमें त्रुटि स्थिति शामिल है जब यह मामला है?

क्या मुझे गलती है? मैं सोच रहा हूं कि नियंत्रक में किसी भी वैधकर्ता को लागू करना संभव है, मॉडल के डेटा को वैध/अमान्य के रूप में सिग्नल करना, और तदनुसार दृश्य को अपडेट करना (लाल रंग के साथ पेंटिंग फॉर्म नियंत्रण, त्रुटि संदेश दिखा रहा है, पिछली त्रुटियों को साफ़ करना आदि)। मुझे लगता है कि AngularJS इसके लिए पर्याप्त शक्तिशाली है, लेकिन दस्तावेज़ों और नमूने में अब तक मैंने कुछ भी नहीं देखा है जैसा मैंने ऊपर वर्णित किया है। धन्यवाद!

+0

'आवश्यक' एक HTML5 विशेषता है। http://html5doctor.com/html5-forms-introduction-and-new-attributes/ इसके अलावा आप 'इनपुट, 'प्रकार' विशेषताओं को 'ईमेल, टेलि, दिनांक, यूआरएल, संख्या' जैसी चीज़ों पर सेट कर सकते हैं और वे मान्य होंगे तदनुसार। –

+0

इसके अलावा मैंने कभी भी एंगुलरयूआई वैलिडेट का उपयोग नहीं किया है, मैंने अभी तक सीधे एचटीएमएल 5 के साथ एंगुलरजेएस सत्यापन का उपयोग किया है और यह पूरी तरह से ठीक काम करता है। AngularUI मान्य एक क्षेत्र में कस्टम अभिव्यक्ति सत्यापन जोड़ने के लिए है। –

उत्तर

1

मुझे लगता है कि यह सब परिप्रेक्ष्य के बारे में है। जिस तरह से मैं इसे देखता हूं, आप एक ऐसे व्यू को परिभाषित कर रहे हैं जिसमें एक फॉर्म होता है और उस रूप में टाइप टेक्स्ट का इनपुट होता है। यह पाठ इनपुट है कि आप आवश्यकतानुसार चिह्नित कर रहे हैं। यदि आप ध्यान देते हैं, तो पाठ उपयोगकर्ता का नाम या नाम या उपयोगकर्ता.एज या अन्य कुछ भी परवाह नहीं करता है। यह सिर्फ आवश्यकतानुसार पाठ इनपुट को जोड़ रहा है। तो यह सिर्फ उस पाठ इनपुट से संबंधित पाठ इनपुट और मॉडल को मान्य करता है, अंतिम परिणाम (वह स्थान जहां वैधता गुजरती है तो मूल्य में जाता है!)। आप सत्यापन कि डिफ़ॉल्ट वाले नहीं हैं कर रही करने के लिए करना चाहते हैं

, कस्टम प्रपत्र सत्यापन के लिए

http://docs.angularjs.org/guide/forms

पर एक नज़र डालें।

चूंकि आप पहले से ही जो उत्पाद पहले से उत्पादित हो रहे हैं उसे जानते हैं (इसे संकलित समय पर कॉल करें!), आप सभी वैधताओं को दृश्य में जोड़ सकते हैं और इसलिए इसे नियंत्रक में करना होगा (जो शायद चलाने के लिए है समय सत्यापन!)।