मेरे पास कोणीय 2 घटकों का एक सेट है जिसे सभी को कुछ सेवा प्राप्त करनी चाहिए। मेरा पहला विचार यह था कि सुपर क्लास बनाना और वहाँ सेवा को इंजेक्ट करना सबसे अच्छा होगा। मेरा कोई भी घटक उस सुपरक्लास का विस्तार करेगा लेकिन यह दृष्टिकोण काम नहीं करता है।
सरलीकृत उदाहरण:
export class AbstractComponent {
constructor(private myservice: MyService) {
// Inject the service I need for all components
}
}
export MyComponent extends AbstractComponent {
constructor(private anotherService: AnotherService) {
super(); // This gives an error as super constructor needs an argument
}
}
मैं MyService
प्रत्येक घटक के भीतर इंजेक्शन लगाकर इसे हल कर सकता था और super()
कॉल के लिए उस तर्क का उपयोग कर सकता था लेकिन यह निश्चित रूप से किसी तरह का बेतुका है।
मेरे घटकों को सही तरीके से कैसे व्यवस्थित करें ताकि वे सुपर क्लास से एक सेवा प्राप्त करें?
new MyService()
इंजेक्शन लगाने के बजाय उपयोग करने से आपको बिल्कुल वही परिणाम मिलता है (अधिक कुशल को छोड़कर)। यदि आप एक ही सेवा उदाहरण को विभिन्न सेवाओं और / या घटकों में साझा करना चाहते हैं, तो यह काम नहीं करेगा। हर वर्ग को एक और MyService
उदाहरण मिलेगा ।
myService
। एक समाधान है कि इस से बचा जाता है लेकिन व्युत्पन्न वर्ग के लिए और अधिक कोड कहते हैं ... मिले