2015-12-30 8 views
5

मेरे पास एक कार्यरत कोणीय 2 Componen टी है। मैंने कुछ सेवा के लिए एक कक्षा लागू की है (यदि यह मायने रखती है तो ng.core.Class का उपयोग कर)। मेरी Component पर मेरी सेवा इंजेक्ट करने के लिए न्यूनतम कदम क्या हैं? क्या मुझे बूटस्ट्रैप फ़ंक्शन में अपनी सेवा शामिल करनी चाहिए? क्या मुझे ng.core.Inject या ng.core.Injectable? का उपयोग करना चाहिए, मेरे सभी प्रयोग अब तक विफल रहे हैं।सादे ES5 (जावास्क्रिप्ट) में कोणीय घटक को कस्टम सेवा कैसे इंजेक्ट करें?

+0

मैं इस सवाल में angular2 की वर्तमान बीटा संस्करण को देखें (आप टिप्पणी में इसके उपयोग के कुछ उदाहरण मिल सकते हैं)। –

उत्तर

12

आप इसे सुपर सरल कर सकते हैं। बस एक वर्ग बनाने के एक providers संपत्ति या के माध्यम से इसे पारित के माध्यम से bootstrap

उदाहरण के लिए

// Alternative 1 
var Service = ng.core.Class({ 
    constructor : function() {}, 
    someFunction : function() { 
    console.log('Some function'); 
    } 
}) 

// Alternative 2 
var Service = function() {} 
Service.prototype.someFunction = function() { 
    console.log('Some function'); 
} 

तो यह घटक

var Component = ng.core. 
     Component({ 
     selector: 'cmp', 
     template : '', 
     providers : [Service] 
     }). 
     Class({ 
     constructor: [Service, function(svc) { 
      svc.someFunction(); 
     }] 
     }); 

या बूटस्ट्रैप के माध्यम से

ng.platform.browser.bootstrap(Component, [Service]); 

यहाँ के पास एक example ताकि आप ले सकें इसे देखो

संदर्भ

+0

धन्यवाद। यह उस तरह से काम करता है। मेरे लिए काम नहीं किया * कारण यह है कि मैं इसे बनाने से पहले 'सेवा' को संदर्भित करने का प्रयास कर रहा था। तो जेएस फाइल लोडिंग का क्रम इस तरह के दृष्टिकोण के साथ महत्वपूर्ण है। –

+0

@ सर्गेईपी.काज़ज़र क्या आप उत्तर को स्वीकार कर सकते हैं यदि यह आपके प्रश्न का उत्तर देता है? –

+0

क्या होगा यदि मुझे दो सेवाओं का उपयोग करने की आवश्यकता है ?? मैं इसे कन्स्ट्रक्टर में कैसे निर्दिष्ट कर सकता हूं? –

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