हां, आप राउटर आउटलेट के माध्यम से प्रदर्शित घटकों के इनपुट सेट कर सकते हैं । अफसोस की बात है, आपको इसे प्रोग्रामेटिक रूप से करना होगा, जैसा कि अन्य उत्तरों में बताया गया है। वहाँ एक बड़ा चेतावनी है कि जब वेधशालाएँ शामिल हैं (नीचे वर्णित है)।
ऐसे:
(1)activate
अभिभावक टेम्पलेट में राउटर-आउटलेट की घटना तक हुक :
<router-outlet (activate)="onOutletLoaded($event)"></router-outlet>
(2) माता-पिता की टाइपस्क्रिप्ट फ़ाइल पर स्विच करें और बच्चे के इनपुट को प्रोग्रामेटिक रूप से सक्रिय होने पर हर बार सेट करें:
onOutletLoaded(component) {
component.node = 'someValue';
}
onOutletLoaded
स्पष्टता के लिए उपर्युक्त संस्करण को सरल बनाया गया है, लेकिन केवल तभी काम करता है जब आप गारंटी दे सकते हैं कि सभी बाल घटकों के पास ठीक वही इनपुट हैं जो आप असाइन कर रहे हैं। यदि आपके पास अलग-अलग इनपुट के साथ घटक हैं, तो गार्ड का उपयोग करें:
onChildLoaded(component: MyComponent1 | MyComponent2) {
if (component instanceof MyComponent1) {
component.someInput = 123;
} else if (component instanceof MyComponent2) {
component.anotherInput = 456;
}
}
सेवा पद्धति पर इस पद्धति को क्यों पसंद किया जा सकता है?
बाल घटकों के साथ संवाद करने के लिए न तो यह विधि और न ही सेवा पद्धति "सही तरीका" है (दोनों विधियाँ शुद्ध टेम्पलेट बाइंडिंग से दूर हैं), इसलिए आपको बस यह तय करना होगा कि परियोजना के लिए कौन सा तरीका अधिक उपयुक्त लगता है।
यह विधि, हालांकि, आपको मध्य-पुरुष वस्तु (सेवा) बनाने से बचने की अनुमति देती है, जो सेवा और बाल घटकों को कसकर जोड़े। कई मामलों में यह "कोणीय तरीके" के करीब महसूस होता है क्योंकि आप @Inputs के माध्यम से अपने बच्चे के घटकों को डेटा भेजना जारी रख सकते हैं। यह पहले से मौजूद या थर्ड-पार्टी घटकों के लिए एक अच्छा फिट है जो आप नहीं चाहते हैं या उस सेवा के साथ जोड़े को कसकर नहीं कर सकते हैं। दूसरी ओर, यह कोणीय तरीके से कम महसूस हो सकता है जब ...
चेतावनी
इस विधि के साथ चेतावनी यह है कि चूंकि आप डेटा को प्रोग्रामिक रूप से पास कर रहे हैं, इसलिए आपके पास अब आपके टेम्प्लेट (आश्चर्य!) में अवलोकन डेटा पास करने का विकल्प नहीं है। इसका मतलब है कि जब आप पाइप-एसिंक्स पैटर्न का उपयोग करते हैं, तो आप के लिए अवलोकन योग्य जीवनचक्र का प्रबंधन करने वाले कोणीय का बड़ा लाभ खो देते हैं।
जब भी onChildLoaded
फ़ंक्शन कहा जाता है , इसके बजाय, आपको वर्तमान अवलोकन मूल्यों को प्राप्त करने के लिए कुछ सेट करना होगा । यह संभवतः मूल घटक के onDestroy
कार्य में कुछ छेड़छाड़ की आवश्यकता होगी । यह कुछ भी असामान्य नहीं है, ऐसे अन्य मामले भी हैं जहां ऐसा करने की आवश्यकता होती है, जैसे कि एक अवलोकनीय का उपयोग करते समय जो टेम्पलेट तक भी नहीं पहुंचता है।
node
जहां यह एक प्रकार के रूप में हैstring
और यह काम नहीं करता है या मैं कुछ गलत कर रहा हूं