$parse
, $interpolate
और $compile
सेवाओं के बीच क्या अंतर है? मेरे लिए वे सभी एक ही काम करते हैं: टेम्पलेट लें और इसे टेम्पलेट-फ़ंक्शन पर संकलित करें।
उत्तर
वे उन सभी सेवाओं के उदाहरण हैं जो AngularJS दृश्य प्रतिपादन में सहायता करते हैं (हालांकि $parse
और $interpolate
इस डोमेन के बाहर उपयोग किया जा सकता है)। इसे समझने के लिए क्या प्रत्येक सेवा की भूमिका के एचटीएमएल के इस टुकड़े का उदाहरण लेते चलो है:
var imgHtml = '<img ng-src="/path/{{name}}.{{extension}}">'
और गुंजाइश पर मान:
$scope.name = 'image';
$scope.extension = 'jpg';
यहाँ इस मार्कअप को देखते हुए क्या प्रत्येक सेवा तालिका में लाता है :
$compile
- यह पूरी मार्कअप लेने के लिए और यह एक जोड़ने समारोह है कि, जब एक निश्चित दायरे के खिलाफ मार डाला अल साथ गतिशील, लाइव डोम में HTML पाठ का एक टुकड़ा हो जाएगा में बदल सकते हैं एल निर्देश (यहां:ng-src
) मॉडल परिवर्तनों पर प्रतिक्रिया। कोई इसे निम्नानुसार पेश करेगा: $ संकलन (imgHtml) ($ स्कोप) और परिणामस्वरूप सभी डोम ईवेंट सीमाओं के साथ एक डोम तत्व प्राप्त होगा।$compile
अपनी नौकरी करने के लिए$interpolate
(अन्य चीजों के साथ) का उपयोग कर रहा है।$interpolate
जानता है कि एम्बेडेड इंटरपोलेशन अभिव्यक्तियों के साथ एक स्ट्रिंग को कैसे संसाधित करना है, पूर्व .:/path/{{name}}.{{extension}}
। दूसरे शब्दों में यह इंटरपोलेशन एक्सप्रेशन, एक दायरा के साथ एक स्ट्रिंग ले सकता है और इसे परिणामी पाठ में बदल सकता है। कोई भी$interpolation
सेवा को एक बहुत ही सरल, स्ट्रिंग-आधारित टेम्पलेट भाषा के रूप में सोच सकता है। उपर्युक्त उदाहरण को देखते हुए कोई इस सेवा का उपयोग करेगा:$interpolate("/path/{{name}}.{{extension}}")($scope)
परिणामस्वरूपpath/image.jpg
स्ट्रिंग प्राप्त करने के लिए।$parse
का उपयोग$interpolate
द्वारा किया जाता है ताकि व्यक्तिगत अभिव्यक्तियों का मूल्यांकन किया जा सके (name
,extension
) एक दायरे के खिलाफ। इसका उपयोग दोनों को और दोनों को मानों को किसी दिए गए अभिव्यक्ति के लिए पढ़ा जा सकता है। उदाहरण के लिए,name
अभिव्यक्ति का मूल्यांकन करने के लिए कोई "छवि" मान प्राप्त करने के लिए:$parse('name')($scope)
करेगा। मान सेट करने के लिए कोई ऐसा करेगा:$parse('name').assign($scope, 'image2')
ये सभी सेवाएं AngularJS में लाइव UI प्रदान करने के लिए मिलकर काम कर रही हैं। लेकिन वे विभिन्न स्तरों पर कार्य करते हैं:
$parse
केवल व्यक्तिगत भाव (name
,extension
) के साथ संबंध है। यह एक पठन-लेखन सेवा है।$interpolate
केवल पढ़ने के लिए और कई भाव (/path/{{name}}.{{extension}}
)$compile
AngularJS मशीनरी के मूल में है और जीने डोम में (निर्देशों और प्रक्षेप भाव के साथ) एचटीएमएल तार बदल सकते हैं युक्त तार के साथ संबंध है।
$interpolate-->
Let us say you have two variables assigned to $scope object in the controller,
$scope.a = 2;
$scope.b = 3;
var f = $interpolate("Result is : {{a*b}}");
var result = f($scope);
console.log(result); --->'Result is 6'
This means that $interpolate can take the string which has one or more angular expressions.
Now $parse:
var f1 = $parse("a*b");
var result1 = f1($scope);
console.log(result1); ----> '6'
**So $interpolate has the capability to evaluate a string with angular expressions mixed up in the string against the scope to get the result**.
Another important difference between $interpolate and $parse,$eval is:
**$interpolate has the capability to work with strings containing filters along with angular expressions.**
This feature is not accessible in $eval , $parse.
console.log($interpolate("Result is : {{a*b | currency : 'USD$'}}")($scope));
---> 'Result is USD $6.00'
$ अंतर्वेशन $ गुंजाइश चर के लेखन पहुँच नहीं है के रूप में हम $ eval में है और $
$ पार्स, $ अंतर्वेशन --- पार्स> होने की जरूरत है इंजेक्शन लेकिन $ eval नियंत्रक में इंजेक्शन की जरूरत नहीं है या जहां यह
$ प्रयोग किया जाता है पार्स, $ समारोह जो किसी भी संदर्भ के खिलाफ मूल्यांकन किया जा सकता है, लेकिन $ eval हमेशा $ गुंजाइश के खिलाफ मूल्यांकन किया जाता है दे अंतर्वेशन।
$ eval और दृश्यों के पीछे $ interpolate केवल $ पार्स का उपयोग करता है।
- 1. एपीआई और वेब सेवाओं के बीच क्या अंतर है?
- 2. ओएसजीआई घटक और सेवाओं के बीच क्या अंतर है
- 3. सेवाओं और प्रसारण रिसीवर के बीच अंतर
- 4. कनवर्ट और पार्स के बीच क्या अंतर है?
- 5. डीबग और संकलन के बीच क्या अंतर है?
- 6. "संकलन समय" और "रन टाइम" के बीच क्या अंतर है?
- 7. डब्ल्यूसीएफ और एएसएमएक्स वेब सेवाओं के बीच अंतर क्या हैं?
- 8. टीम फाउंडेशन सर्वर और टीम सेवाओं के बीच अंतर
- 9. एएसपी.नेट वेबहूक और वेब सेवाओं के बीच अंतर?
- 10. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 11. # {} $ {} और% {} के बीच क्या अंतर है?
- 12. `&` और `ref` के बीच क्या अंतर है?
- 13. $ और $$ के बीच क्या अंतर है?
- 14. के बीच क्या अंतर है:। और: आर !?
- 15. वेरिलोग के बीच क्या अंतर है! और ~?
- 16. भिन्नता और '-' के बीच क्या अंतर है?
- 17. क्या $ @ और "$ @" के बीच कोई अंतर है?
- 18. * और * के बीच क्या अंतर है?
- 19. "$^एन" और "$ +" के बीच क्या अंतर है?
- 20. डब्ल्यूसीएफ और अन्य वेब सेवाओं के साथ क्या अंतर है?
- 21. गियरमैन के काम और कार्य के बीच क्या अंतर है?
- 22. पार्स पेड़ और व्युत्पन्न पेड़ों के बीच कोई अंतर?
- 23. अंतिम चर के बीच अंतर और संकलन समय स्थिर
- 24. गोलांग - "go run main.go" और संकलन के बीच अंतर
- 25. Grails BuildConfig.groovy, निर्माण, संकलन, और रनटाइम के बीच अंतर?
- 26. स्टैक फ़ाइल और कम्पोज़ फ़ाइल के बीच क्या अंतर है?
- 27. पृष्ठभूमि और अग्रभूमि सेवा के बीच क्या अंतर है?
- 28. मैट्रिक्स और एक टैबलेट के बीच क्या अंतर है? रिपोर्टिंग सेवाओं में
- 29. सिद्धांत 2 में प्रॉक्सी, भंडार और सेवाओं के बीच क्या अंतर है?
- 30. स्थानीय नाम और qname के बीच क्या अंतर है?
अच्छी तरह से समझाया गया। वोट दिया! :) – AlwaysALearner
वास्तव में बहुत अच्छा है! –
अच्छा। क्या आप कृपया उनमें से प्रत्येक के लिए उदाहरण उपयोग और परिणाम प्रदान कर सकते हैं? यह अभी भी मेरे लिए 100% स्पष्ट नहीं है और मुझे लगता है कि इससे बहुत मदद मिलेगी। धन्यवाद! –