2015-10-27 37 views
7

में दस्तावेज़ बनाम $ दस्तावेज़ के बीच मतभेद Angular के अनुप्रयोगों के विकास के दौरान document और $document का उपयोग करने के बीच अंतर क्या हैं? मैंने पढ़ा है कि setTimeout के बजाय window या $timeout के बजाय $window जैसे कोणीय के समकक्षों का उपयोग करना बेहतर है।कोणीय

लेकिन ... क्यों? मैंने सोचा window, setTimeout और document तेज़ हैं क्योंकि वे मूल हैं और कोणीय ढांचे के कोड को "पास" करने की आवश्यकता नहीं है।

क्या मूल कार्यों के बजाय कोणीय के समकक्षों का उपयोग करना बेहतर है, जेएस से ऑब्जेक्ट्स?

+0

बिल्कुल आपके साथ सहमत हैं .. हां देशी कोड तेज़ है लेकिन मुझे समझने का कारण यह है कि आपके बाद नया कोणीय डेवलपर देशी कोड को समझ नहीं सकता है .. यही कारण है कि, शायद। लेकिन मुझे आश्चर्य है कि देशी कोड में क्या होता है यह जानने के बिना लोग (या सटीक कैसे) कोणीय सीखते हैं? –

+0

देखें कि कोणीय जेएस डॉक्स कहता है: ब्राउज़र की window.document ऑब्जेक्ट के लिए एक jQuery या jqLite wrapper। –

+0

https://coderwall.com/p/udpmtq/angularjs-use-timeout-not-settimeout यह आपकी मदद करेगा –

उत्तर

0

के बाद हमेशा सत्य है: $ window.document === $ दस्तावेज़ [0]

5

$document एक jQuery वस्तु (मूल रूप से $(document)) है।

तो बुनियादी तौर पर आप ऐसा करने में सक्षम होना चाहिए:

$document[0].property = document.property 

आप एक उदाहरण के लिए this देख सकते हैं।

6

$ दस्तावेज़ और $ विंडो के लिए कोणीय सेवाओं का उपयोग करके आप अपना कोड यूनिट परीक्षण तैयार करते हैं। यह निर्भरता इंजेक्शन आपको अपने दस्तावेज़ों में $ दस्तावेज़ या $ विंडो के नकली संस्करणों का उपयोग करने की अनुमति देता है।

प्रदर्शन प्रभाव का उल्लेख अनदेखा किया जा सकता है।

0

आप कोणीय wrapers का उपयोग करना चाहिए, bcus यह मॉडल> ​​दृश्य के साथ कोणीय तुल्यकालन उल्लंघन नहीं करती है,

उदाहरण के लिए, यदि आप आप setTimeout का उपयोग $ करना होगा मूल्यों को ताज़ा करने के पचाने() गुंजाइश दृश्य में, यदि आप कुछ मॉडल मानों को बदलने की योजना बनाते हैं, तो दूसरी ओर यदि आप $ टाइमआउट का उपयोग करते हैं तो आपको यह करने की आवश्यकता नहीं है कि कार्य समाप्त होने के बाद स्कोप रीफ्रेश हो जाएगा