2017-07-13 33 views
7

मैंने यह देखने के लिए ज्यादातर एक कोणीय 4 टेम्पलेट खरीदा है कि लेआउट कैसे किया जा रहा है लेकिन काम करने वाले घटकों को शामिल किया गया है, मैंने देखा है कि उनके पास ऐप घटक में सेटिंग्स का एक समूह है जो अधिकतर मेनू के लिए है, शैलियों को बदल रहा है, ज्यादातर बाहरी ढांचे को नियंत्रित करता है।कोणीय 4 forwardRef?

मेनू घटक और कुछ अन्य घटकों वे उपयोग कर AppComponent सेटिंग्स के साथ संवाद कर रहे हैं निम्नलिखित:

constructor(@Inject(forwardRef(() => AppComponent)) public app:AppComponent) {} 

और की तरह कुछ कहेंगे: this.app.darkMenu मेनू घटक में सच =

क्या यह वैध डिजाइन है, अच्छा, बुरा, पुराना? मुझे यह भी पता नहीं था कि आप इस तरह के ऐप या पैरेंट घटक के साथ संवाद कर सकते हैं? क्या यह एक अवलोकन विषय या EventEmitter हो सकता है या क्या यह आगे के माध्यम से संवाद करने के लिए स्वीकार्य है? ऐसा लगता है कि .NET में समान है जहां मैं मास्टर.जेज के साथ इस .master.whateverproperty का उपयोग कर संवाद कर सकता हूं।

मुझे पसंद है कि आगे कैसे काम करता है लेकिन मुझे यकीन नहीं है कि मुझे इसका उपयोग करना चाहिए या इसे अलग-अलग संवाद करने के लिए बदलना चाहिए ??

+0

मुझे लगता है कि आपको पहले से ही एक जवाब मिला है, लेकिन मैंने सोचा कि मैं इसे एक साझा करूँगा: https://hackernoon.com/what-is-forwardref-in-angular-and-why-we-need-it -6ecefb417d48 – Alex

+0

धन्यवाद ...... – Fab

+0

आप पढ़ सकते हैं [कोणीय में 'फॉरवर्डरफ' क्या है और हमें इसकी आवश्यकता क्यों है] (https://blog.angularindepth.com/what-is-forwardref-in-angular- और-क्यों-हम-ज़रूरत-यह -6ecefb417d48) जो विवरण –

उत्तर

4

forwardRef संचार के लिए नहीं है। forwardRef एक प्रकार का नाम उपयोग करने में सक्षम होना है जिसे केवल उसी फ़ाइल में घोषित किया गया है।
यदि export class AppComponent {} एक अलग फ़ाइल में है, तो forwardRef के लिए कोई आवश्यकता नहीं है।
IMHO आमतौर पर उन घटकों के बीच संचार के लिए साझा सेवा का उपयोग करना बेहतर होता है जो प्रत्यक्ष माता-पिता नहीं हैं।

+1

में बताता है, मैंने सोचा और आश्चर्यचकित हुआ जब मैंने टेम्पलेट के लिए पैसे का भुगतान किया और कोड देखा जो आगे के रूप में घटक के बीच संचार के रूप में उपयोग कर रहा था, इसलिए मैंने सोचा कि शायद मैं कुछ याद किया मैं संचार के लिए आरएक्सजे विषय का उपयोग कर अधिकांश कोड को फिर से लिखने की प्रक्रिया में हूं लेकिन मुझे किसी और की आवश्यकता के लिए बस किसी और की आवश्यकता है। धन्यवाद! – Fab