2015-05-12 6 views
5

मैं एक एंजुलरज फ़ाइल को समझने की कोशिश कर रहा हूं जिसे मुझे Django के साथ एकीकृत करने के लिए उपयोग करने की आवश्यकता है, और इसमें एक अजीब सिंटैक्स है जिसे मैं परिचित नहीं हूं (ध्यान में रखें कि मैं जूनियर देव हूं, इसलिए यह आपकी रोटी हो सकती है और मक्खन) ...इस फ़ंक्शन परिभाषा में 'window.angular' का उपयोग क्यों किया जाता है?

यह हो जाता है कुछ की तरह:

(function(angular, undefined){ 
    'use script'; 
    var djng_forms_module = angular.module('ng.django.forms', []); 
    funtion hasCode(s){ 
     return ..... 
    } 
    var foo = ..... 
}(window.angular)); 

मैं एक खिड़की के जावास्क्रिप्ट अवधारणा के बारे में this देखा है और यह पता चलता है कि window हिस्सा शीर्ष() स्तर वस्तु ब्राउज़र क्या है? जब यह पृष्ठ लोड करता है बनाता है।

चल रहा है console.log(window.angular) आंतरिक कोणीय सामग्री के भार को प्रिंट करता है। तो मुझे लगता है कि AngularJS की आंतरिक हिम्मत है ...?

लेकिन यह अजीब encapsulation क्यों एक समारोह के रूप में (जावास्क्रिप्ट के साथ कुछ 'कार्यात्मक' भाषा होने के लिए)?

पूर्ण स्क्रिप्ट here है और मैं यह नहीं समझ सकता कि यह इस कार्य परिभाषा में window.angular का उपयोग क्यों करता है (चीजों को करने के सामान्य तरीके के विपरीत)। ऐसा लगता है कि इस सेट अप का मतलब है कि यह मेरे आवेदन के लिए काम नहीं कर रहा है जब मैं इसे script टैग के माध्यम से आयात करता हूं।

उत्तर

8

window.angular ग्लोबल एंजुलरजेस वैरिएबल है जो एक बार एंजुलरज को स्क्रिप्ट टैग से पूरी तरह से लोड किया गया है। आपके द्वारा चिपकाया गया कोड खंड यह सुनिश्चित करता है कि यह इस चर की आबादी के बाद निष्पादित हो। एक कारण यह है कि यह वर्बोज़ तरीके से लिखा जा सकता है बस इसकी स्वत: जेनरेट की गई प्रकृति है। व्यापक संदर्भ में, यह उस क्रम में निहितार्थ हो सकता है जिसमें स्क्रिप्ट निष्पादित की जाती हैं या कोणीय पुस्तकालय के विभिन्न संस्करणों का उपयोग करने के लिए।

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