"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > AngularJS $watch डायनामिक नेविगेशन ऊंचाई समायोजन में टाइमर को कैसे बदल सकता है?

AngularJS $watch डायनामिक नेविगेशन ऊंचाई समायोजन में टाइमर को कैसे बदल सकता है?

2024-11-05 को प्रकाशित
ब्राउज़ करें:993

How Can AngularJS $watch Replace Timers in Dynamic Navigation Height Adjustment?

AngularJS के लिए ऊंचाई में टाइमर देखने से बचना

नेविगेशन ऊंचाई गतिशील होने पर AngularJS प्रोग्रामर को अक्सर उत्तरदायी नेविगेशन की चुनौती का सामना करना पड़ता है। इससे नेविगेशन ऊंचाई परिवर्तनों के जवाब में सामग्री के मार्जिन-टॉप मान को समायोजित करने की आवश्यकता होती है।

पहले, नेविगेशन ऊंचाई परिवर्तनों का पता लगाने के लिए एक टाइमर का उपयोग किया जाता था, लेकिन इस दृष्टिकोण में कमियां थीं: टाइमर का उपयोग और सामग्री के मार्जिन-टॉप को समायोजित करने में देरी।

सौभाग्य से, एक बेहतर दृष्टिकोण मौजूद है: AngularJS की $watch कार्यक्षमता का लाभ उठाना। टाइमर के बजाय, एक द्रष्टा को 'emHeightSource' में पंजीकृत किया जाता है, जिसे प्रत्येक $digest चक्र के दौरान लागू किया जाता है। देखने वाला '__height' प्रॉपर्टी को अपडेट करता है। ऊंचाई।

वॉचर्स का उपयोग करके यहां परिष्कृत कोड दिया गया है:

/* * ऊंचाई बदलने और मार्जिन-टॉप बदलने पर सूचना प्राप्त करें */ .directive('emHeightTarget', function() { वापस करना { लिंक: फ़ंक्शन (स्कोप, एलीम, एटर्स) { scope.$watch('__height', function(newHeight, OldHeight ) { elem.attr ('स्टाइल', 'मार्जिन-टॉप:' (58 न्यूहाइट) 'पीएक्स'); } ); } } } ) /* * ऊंचाई में बदलाव के लिए प्रत्येक $digest की जांच करता है */ .directive('emHeightSource', function() { वापस करना { लिंक: फ़ंक्शन (स्कोप, एलीम, एटर्स) { स्कोप.$वॉच(फ़ंक्शन() { दायरा.__ऊंचाई = elem.ऊंचाई(); } ); } } } )

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3