javascript - एनजी-मॉडल और एनजी-मूल्य के बीच अंतर/असंगति क्या है?




angularjs angularjs-directive (4)

जहाँ तक मैंने समझा एनजी-मॉडल उस विशेष तत्व के लिए मूल्य निर्धारित करता है जिसमें मॉडल को सौंपा गया है। यह दिया गया कि एनजी-मॉडल एनजी-मॉडल से अलग कैसे है?


प्रलेखन में स्पष्ट रूप से कहा गया है कि ng-model साथ दो-तरफा बाध्यकारी करते समय ng-value उपयोग नहीं किया जाना चाहिए।

डॉक्स से:

ngValue

दिए गए अभिव्यक्ति को तत्व के मूल्य से बांधता है।

इसका उपयोग किसी दिए गए एक्सप्रेशन के एक तरफ़ा बाइंडिंग जैसे input[text] या ngModel सकता है , जब वह एलिमेंट ngModel उपयोग नहीं करता है

- https://docs.angularjs.org/api/ng/directive/ngValue

इसके बजाय, नियंत्रक से मूल्य को इनिशियलाइज़ करें:


यह एनजी-मॉडल के साथ मिलकर काम करता है; रेडियो और चयनों के लिए, यह मान है जो उस आइटम के चुने जाने पर एनजी-मॉडल पर सेट किया जाता है। इसे तत्व के 'मूल्य' विशेषता के विकल्प के रूप में उपयोग करें, जो हमेशा संबंधित एनजी-मॉडल के लिए एक स्ट्रिंग मान संग्रहीत करेगा।

रेडियो बटन के संदर्भ में, यह आपको गैर-स्ट्रिंग मानों का उपयोग करने की अनुमति देता है। उदाहरण के लिए, यदि आपके पास रेडियो बटन 'Yes' और 'No' (या समतुल्य) हैं, जिसमें 'true' और 'false' जैसे मान हैं - यदि आप 'value' का उपयोग करते हैं, तो आपके ng-model में संग्रहीत मान तार बन जाएंगे। यदि आप 'एनजी-वैल्यू' का उपयोग करते हैं, तो वे बूलियन बने रहेंगे।

हालांकि, एक चुनिंदा तत्व के संदर्भ में, ध्यान दें कि एनजी-मूल्य अभी भी हमेशा एक स्ट्रिंग के रूप में माना जाएगा। किसी चयन के लिए गैर-स्ट्रिंग मान सेट करने के लिए, ngOptions का उपयोग करें।


https://docs.angularjs.org/api/ng/directive/ngValue अनुसार, ngValue एक "कोणीय अभिव्यक्ति लेता है, जिसका मूल्य इनपुट तत्व के मूल्य विशेषता के लिए बाध्य होगा"।

इसलिए, जब आप एनजी-मूल्य = "हार्ड" का उपयोग करते हैं, तो इसे एक अभिव्यक्ति के रूप में व्याख्या किया जाता है और मूल्य $ स्कोप के लिए बाध्य होता है। (जो कि शायद अपरिभाषित है)। ngValue अभिव्यक्ति के मूल्यांकन के लिए उपयोगी है - हार्ड-कोडित मान सेट करने के लिए इसका कोई लाभ नहीं है। फिर भी, यदि आप एनवैल्यू के साथ किसी मूल्य को हार्ड-कोड करना चाहते हैं, तो आपको इसे '' में संलग्न करना होगा:

एनजी-value = " 'कठिन'"

एनजी-मॉडल को फॉर्म तत्वों के अंदर रखने का इरादा है और इसमें दो-तरफ़ा डेटा बाइंडिंग ($ गुंजाइश -> दृश्य और दृश्य -> ​​$ गुंजाइश) उदा <input ng-model="val"/>.

या आप कह सकते हैं कि एनजी-मॉडल निर्देश डेटा को लागू करने के लिए HTML नियंत्रण (इनपुट, चयन, टेक्सारिया) के मूल्य को बांधता है।


input फ़ील्ड में ng-value लिए एक अच्छा उपयोग है यदि आप किसी वैरिएबल को बांधना चाहते हैं, लेकिन किसी अन्य वैरिएबल के मूल्य के आधार पर। उदाहरण:

<h1>The code is {{model.code}}.</h1>
<p>Set the new code: <input type="text" ng-bind="model.code" /></p>

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

<input type="text" ng-value="model.code" ng-bind="model.theNewCode" />

theNewCode अपडेट किया जाएगा, लेकिन code अछूता रहेगा।






angularjs-ng-value