मैंने सामान्य रूप से सीखा है कि फ़ंक्शन कार्यान्वयन के पास फ़ंक्शन तर्कों के लिए कोई नाम हो सकता है जब तक कि इसे सही क्रम में आपूर्ति की जाती है। यह फ़ंक्शन को बाहरी दुनिया से समेकित करता है और स्थानीय नामों का आउटपुट पर कोई प्रभाव नहीं पड़ता है। कार्यान्वयन में स्थानीय चर के लिए सभी अधिकार हैं। अगर मैं "बार" के बजाय "$ गुंजाइश" मैं कोई त्रुटि मिलती है डाल वहाँ
function Controller($scope)
{
$scope.name = "Something";
}
: कोणीय जे एस में हालांकि, यह की तरह कुछ है करने के लिए सहज ज्ञान युक्त मुकाबला करने के लिए लगता है। यह सामान्य कार्य नहीं है जिसका हम उपयोग करते हैं। मुझे विश्वास है कि यह DI के साथ कुछ करने के लिए है, लेकिन क्या कोई इस अवधारणा को समझा सकता है? मुझे इसे "फ़ंक्शन" कहना मुश्किल लगता है क्योंकि यह बाहरी दुनिया पर निर्भर है - विशेष रूप से तर्क का नाम।
यदि डीआई असली कारण है, तो क्या कोई मुझे बता सकता है कि इसे कैसे लागू किया जाता है? आम तौर पर मैं डीआई को अच्छा कर सकता हूं जब मैं टेस्ट केस के लिए ऑब्जेक्ट बनाना चाहता हूं। इस मामले में डीआई क्या भूमिका निभाता है?
डीआई के सामान्य परिदृश्यों में जो मैंने पार किया है, तर्क जो पारित हो जाता है, फ़ंक्शन के लिए एक सेवा करता है जैसे foo displayTime (घड़ी) {clock.something}। समय समारोह के लिए सिर्फ एक सेवा है। हालांकि यहां मुझे लगता है कि, $ गुंजाइश और ढांचा कार्य के साथ जादू करना प्रतीत होता है कि तर्क को व्यक्त करने का घोषणात्मक तरीका है।
संपादित करें: जाहिर है इस कार्यक्षमता कम करें टूटता जेएस और हम में How do the function argument names in Angular.js objects connect to other objects?
कोणीय वास्तव में तर्कों का मूल्यांकन करता है (फ़ंक्शन का उपयोग करके।टूस्ट्रिंग) सही संसाधनों को नाम और इंजेक्ट करता है, जब आप कोणीय के साथ शुरू करते हैं तो यह उन चीजों में से एक है जो आप सीखते हैं! यहां देखें: http://stackoverflow.com/questions/16949889/how-do-the-function-argument-names-in-angular-js-objects-connect-to-other-object –
"डीआई के सामान्य परिदृश्य में पार हो गया है, जो तर्क पारित हो जाता है वह कार्य के लिए एक सेवा करता है "... यह कोणीय में भी मामला है, हालांकि स्कॉप्स थोड़ी विशेष हैं ... https://github.com/angular/angular.js/ विकी/समझने वाली स्कॉप्स जो स्कॉप्स और https://docs.angularjs.org/guide/scope के बारे में विवरण में जाती है जो शायद आपको का उपयोग करने के तरीके के बारे में अधिक पसंद करती है लेकिन आप अपनी खुद की घड़ी सेवा को इंजेक्ट कर सकते हैं: myApp.service ('घड़ी', ['अन्य निर्भरता', फ़ंक्शन (ओडी) {this.something = "मैं घड़ी हूं!";}]); – Jens