2013-09-05 5 views
47

मैं आजकल एंगुलरजेएस के बारे में बहुत कुछ पढ़ रहा हूं, और मैं उस जादुई $ घड़ी समारोह में आया था। मैं समझता हूं कि इसका उपयोग कैसे करें, लेकिन मुझे आश्चर्य है कि यह पृष्ठभूमि में कैसे कार्यान्वित किया जाता है। क्या यह एक समय अंतराल समारोह है? या क्या यह कोणीय इस बयान को हर कथन को बुला रहा है?

मैं अभी स्रोत कोड में खोदना नहीं चाहता हूं, और मुझे खुशी होगी कि आप में से कोई जवाब पहले से ही जान सकता है और विषय के बारे में अपना ज्ञान साझा करना चाहता हूं।

धन्यवाद।

+0

यह मदद मिलेगी आप http://stackoverflow.com/questions/9682092/databinding-in-angularjs/9693933#9693933 – Chandermani

+0

यह भी ... http://angular-tips.com/ब्लॉग/2013/08/घड़ी-कैसे-लागू-रन-ए-डाइजेस्ट/ – Sushrut

+0

यह कैसे काम करता है इसके बारे में एक वास्तविक वास्तविक लेख है: http://teropa.info/blog/2013/11/03/make -आप-स्वयं-कोणीय-भाग -1-स्कॉप्स-और-digest.html –

उत्तर

72

सभी घड़ियों का मूल्यांकन प्रत्येक पाचन लूप का मूल्यांकन किया जाता है (कभी-कभी कई बार)। पाचन लूप कुछ घटनाओं के परिणामस्वरूप दर्ज किया जाता है, या $ आवेदन() को कॉल किया जाता है। घड़ियां समय-समय पर टाइमर पर आधारित नहीं होती हैं।

पहुंचने के लिए एक घटना के लिए https://docs.angularjs.org/guide/scope#integration-with-the-browser-event-loop

ब्राउज़र की घटना लूप प्रतीक्षा करता है देखें। ईवेंट का कॉलबैक निष्पादित हो जाता है ... कॉलबैक निष्पादित होने के बाद, ब्राउज़र जावास्क्रिप्ट संदर्भ छोड़ देता है और डीओएम परिवर्तनों के आधार पर दृश्य को फिर से प्रस्तुत करता है। कोणीय अपने स्वयं के इवेंट प्रोसेसिंग लूप प्रदान करके सामान्य जावास्क्रिप्ट प्रवाह को संशोधित करता है। यह जावास्क्रिप्ट को शास्त्रीय और कोणीय निष्पादन संदर्भ में विभाजित करता है ... कोणीय निष्पादन [कुछ] stimulusFn(), जो आमतौर पर अनुप्रयोग स्थिति को संशोधित करता है। कोणीय $ पाचन लूप में प्रवेश करता है। लूप दो छोटे लूपों से बना है जो $ evalAsync कतार और $ घड़ी सूची को संसाधित करते हैं। $ पाइजेस्ट लूप मॉडल स्थिर होने तक पुनरावृत्त रहता है, जिसका अर्थ है कि $ evalAsync कतार खाली है और $ घड़ी सूची किसी भी परिवर्तन का पता नहीं लगाती है। $ घड़ी सूची अभिव्यक्ति का एक सेट है जो अंतिम पुनरावृत्ति के बाद बदल सकती है। यदि कोई परिवर्तन पता चला है तो $ घड़ी फ़ंक्शन को कॉल किया जाता है जो आम तौर पर नए मूल्य के साथ डीओएम अपडेट करता है।

enter image description here

+0

व्यापक उत्तर –

+1

+1 अच्छा उत्तर। – shashwat

+1

दस्तावेज़ीकरण का सही लिंक: https://docs.angularjs.org/guide/scope – Vereb

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