2012-12-05 23 views
12

सरल मुझे उम्मीद है ..कोणीय - रनटाइम निर्भरता इंजेक्शन?

संदर्भ के लिए यहां plunker है।

मुझे पता है कि संकलन समय पर निर्भरता कैसे निर्दिष्ट करें (MainCtrlInjected नियंत्रक देखें)। लेकिन मैं उस निर्भरता का नाम देकर रनटाइम पर निर्भरता कैसे खींचूं? (MainCtrlInjectedRuntime नियंत्रक देखें)

उत्तर

16

आप $ इंजेक्टर का उपयोग कर सकते कार्यावधि में अपने मूल्य प्राप्त करने के:

मेरी काँटेदार plunker की जाँच करें: http://plnkr.co/edit/iVblEU?p=preview

कोड:

app.controller('MainCtrlInjectedRuntime', [ 
    '$scope', 
    '$injector' 
    ($scope, $injector) -> 

    nameValHandle = 'nameVal' 

    # !!! This is how you inject at runtime 
    name = $injector.get(nameValHandle) 

    $scope.name = name 
]) 
+0

अरे, यह आसान था, धन्यवाद! –

+1

मुझे लगता है कि ज्ञात वस्तुओं को इंजेक्शन देने के लिए इंजेक्टर का उपयोग किया जा सकता है, क्या इंजेक्टर मॉड्यूल में नई निर्भरता जोड़ सकता है? जैसा कि, जब मैं गतिशील रूप से विजेट को प्रीलोड करता हूं, तो क्या मैं इसे ऐप में जोड़ सकता हूं, इसलिए ऐप इसे दिखा सकता है? – Sander

0

मैं सिर्फ कोणीय में प्रवेश कर रहा हूं, लेकिन मेरा मानना ​​है कि इस स्थिति को संभालने का उचित तरीका मेनक्यूटर इंजेक्शन रनटाइम में एक सेवा को इंजेक्ट करना होगा। इंजेक्शन सेवा में आपके किसी भी तरह GetNameFromValue विधि होगी।

+0

आप निर्भरता ऐसे नाम हैं जो संकलन में जाना जाता है के लिए सही हो समय, लेकिन कभी-कभी रनटाइम पर यह काम में आता है। मैं इसका उपयोग कर रहा हूं, निर्देश में, मैं 'मूल्य' निर्भरता के नाम पर एक विशेषता सेट कर रहा हूं जो निर्देश को कॉन्फ़िगर करने में सहायता करता है। मेरे निर्देश में मैं निर्भरता को गतिशील रूप से हल करता हूं। –

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