2015-05-31 10 views
15

angular-logger पर, हम $log को बढ़ाने की कोशिश कर रहे हैं, लेकिन हम कोणीय के मॉड्यूल और परिवर्तन के बिना घटक के नाम पर काम करना चाहते हैं। ऐसा करने के लिए हम, AngularJS कार्यावधि में संदर्भ प्राप्त करने की आवश्यकता कि है, मॉड्यूल का नाम और नियंत्रक, सेवा या निर्देश नाम।मॉड्यूल और नियंत्रक प्राप्त करें | सेवा | रनटाइम पर निर्देशक नाम

app.module("SampleModule"). 
    controller("ControllerOne", function ($log) { 
     $log.debug("I am ready!") 
    }). 
    controller("ControllerTwo", function ($log) { 
     $log.debug("I am ready!") 
    }); 

डिफ़ॉल्ट $log उत्पादन:

> I am ready! 
> I am ready! 

हम रनटाइम पर मॉड्यूल और नियंत्रक नाम प्राप्त कर सकते हैं, तो बढ़ाया $log का उपयोग कर हम अमीर उत्पादन प्राप्त कर सकते हैं:

> SampleModule.ControllerOne: I am ready! 
> SampleModule.ControllerTwo: I am ready! 
सबसे अच्छा

विकल्प नियंत्रक के कोड में परिवर्तन किए बिना इसे प्राप्त करना होगा। शायद $ लॉग निर्भरता इंजेक्शन प्राप्त करने वाली संस्थाओं के बारे में कुछ मेटा जानकारी प्राप्त करने का कोई तरीका है?

कोई सुझाव?

+0

आप एक निर्देश एनजी नियंत्रक, जो हर नियंत्रक के लिए निष्पादित और एनजी नियंत्रक करने के लिए स्ट्रिंग के रूप में और स्कोर में कुछ चर पर सेट .. और फिर उस चर का उपयोग नियंत्रक मुद्रित करने के लिए उपलब्ध कराई गई सामग्री को पार्स होगा बना सकते हैं नाम – harishr

+0

कोणीय सभी निर्देशों को निष्पादित करता है यदि समान नाम – harishr

उत्तर

6

SO पर similar question that I found था, लेकिन समाधान केवल नियंत्रक के रूप में नियंत्रक का उपयोग करते समय ही काम करता है।

// a simple route with controller as syntax 
$routeProvider.when(
    '/myRoute', 
    { 
     templateUrl: '/myRoute', 
     controller: 'ControllerOne as vm' 
    } 
); 

// controller 
app.controller("ControllerOne", ['$log', function ControllerOne($log) { 
    var vm = this; 
    $log.log(vm.constructor.name); 
}]); 
+0

@Plantface के साथ कई निर्देश मिले, तो मैंने आपका संपादन देखा। आपको क्यों लगता है कि "कोणीय सरणी एनोटेशन शैक्षणिक उद्देश्यों के लिए अनिवार्य है"। –

+2

सरणी एनोटेशन का उपयोग किसी समस्या के आसपास काम करने के लिए किया जाता है जो केवल खनन के दौरान होता है। इस मामले में इसमें कोई अतिरिक्त मूल्य नहीं है और केवल प्रासंगिक जानकारी अस्पष्ट करने में मदद करता है। [su · per · flu · ous, adj .: _ जो पर्याप्त है या आवश्यक है __ (http://www.thefreedictionary.com/superfluous) –

+0

यह एक शर्म की बात है जो केवल नियंत्रक के लिए काम करती है और सेवाओं के लिए लॉग बढ़ाए गए क्षमताओं को छोड़ देती है और निर्देश। मुझे एक संदर्भ निष्पादन के साथ रैपिंग को हल करने के लिए ध्यान में आता है, समय पहले मैंने एक ढांचे के बारे में पढ़ा जो इसे परीक्षण या थ्रेड निष्पादन के लिए बनाता है लेकिन मुझे इसका नाम याद नहीं है। – pdorgambide

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