8

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

Given this plnkr

जब यह &, = उपयोग करने के लिए, या कार्यों माता पिता पर सीधे कॉल उचित है?

मैं '=' ​​चिह्न के साथ बंधन पसंद करते हैं, वहाँ कम कोड निर्देश में और मॉड्यूल में निर्देश की मेजबानी के लिए आवश्यक है के रूप में, लेकिन according to the documentation (ट्रांसक्लुजन और कार्यक्षेत्र को समझना) ऐसा लगता है कि & साथ कॉलबैक के लिए बाध्य है पसंदीदा विधि, क्यों?

उत्तर

7

अच्छा सवाल। इस तरह के फैसलों को अपनी चिंताओं को अलग करने की कोशिश करने के परिप्रेक्ष्य से पहले किया जाना चाहिए। इसलिए हमें माता-पिता के दायरे पर एक विधि को बुलावा देना है - निर्देश को माता-पिता के बारे में बहुत कुछ पता होना चाहिए।

अगला, हम उद्देश्य को देखते हैं। कॉलबैक परिभाषा के अनुसार तरीके हैं। & अभिभावक के दायरे के संदर्भ में एक अभिव्यक्ति का मूल्यांकन करता है, जबकि एक द्वि-दिशात्मक बाध्यकारी केवल एक चर नाम है। & एक बहुत अधिक शक्तिशाली है और आपके निर्देश के उपयोगकर्ता को अधिक लचीलापन देता है। बेशक, वे अपने उदाहरण की तरह इस, कर सकता है:

<my-dir cb="callMe()"></my-dir> 

लेकिन वे भी ऐसा कर सकता है:

<my-dir cb="myVar = false"></my-dir> 

हम एक चर के नाम पर पारित करने के लिए की जरूरत नहीं है - यह किसी भी है कोणीयजेएस expression। तो घटक का उपयोगकर्ता आपके ईवेंट पर प्रतिक्रिया देने के लिए स्वतंत्र है जो किसी भी तरह से उपयुक्त है। बहुत बढ़िया!

लेकिन यह भी, राज्य परिवर्तनों पर प्रतिक्रिया प्रतिक्रिया दे सकता है। उदाहरण के लिए, आप एक शर्त के लिए जाँच कर सकते हैं:

<my-dir cb="myVar"></my-dir> 

और myVar किसी भी मूल्य के लिए मूल्यांकन कर सकते हैं और अपने निर्देश बारे में पता किसी भी समय इस परिवर्तन किया जा सकता है और तदनुसार प्रतिक्रिया। परिवर्तनीय साझा करने के बजाय, आप अभिव्यक्ति साझा कर रहे हैं। इस मामले में, एक द्वि-दिशात्मक बाध्यकारी काम करेगा, लेकिन यदि निर्देश उस चर को बदलता नहीं है (और शायद नहीं), तो हमें दो-तरफा बाध्यकारी क्यों चाहिए?

लेकिन फिर भी, यह एक चर नहीं होना चाहिए। एक अभिव्यक्ति के बारे में जो सत्य या गलत का मूल्यांकन करता है?

<my-dir cb="myVar == myOtherVar"></my-dir> 

हमारे निर्देश कैसे माता पिता गुंजाइश एक मूल्य पर आता है देखभाल करने के लिए नहीं है - केवल क्या मूल्य अंततः है।

तो हम निर्देशक पर प्रतिक्रिया करने के लिए या माता-पिता को प्रतिक्रिया करने के निर्देश के लिए माता-पिता के दायरे के लिए इसका उपयोग कर सकते हैं - सभी लचीली अभिव्यक्तियों के साथ। साफ।

तो, = डेटा बाध्यकारी सुनिश्चित करने के लिए है; यह सुनिश्चित करता है कि जिस दायरे का निर्देश इस्तेमाल किया गया था और निर्देश स्वयं एक निश्चित चर पर सिंक में रहता है।& माता-पिता के दायरे के संदर्भ में अभिव्यक्तियों का मूल्यांकन करने और संभावित जटिल राज्य परिवर्तनों पर प्रतिक्रिया करने के लिए निर्देश या माता-पिता के दायरे के लिए अनुमति देता है।

+0

धन्यवाद, यह मुझे स्पष्ट करता है। एक अभिव्यक्ति का मूल्यांकन करता है, = एक अभिभावक दायरे से बांधता है। – Jason

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