2016-03-08 5 views
6

मैं एक मार्ग configआप रूटिंग के तहत किसी घटक को EventEmitter आउटपुट कैसे संलग्न करते हैं?

@RouteConfig([ 
    { path: '/', name: 'Start', component: Journal }, 
    { path: '/register', name: 'Register', component: Register }, 
    { path: '/login', name: 'Login', component: Login }, 
    { path: '/settings', name: 'Settings', component: Settings }, 
]) 

है मैं जर्नल की @Output से उत्सर्जित घटनाओं को सुनने के लिए चाहते हैं। मैं यह कैसे कर सकता हूं जब मेरे पास टेम्पलेट में एकमात्र संदर्भ है

<a class="nav-item nav-link" [routerLink]="['Journal']">Journal</a> 

?

+3

[आप नहीं कर सकते] (https://github.com/angular/angular/issues/4452)। आपको एक साझा सेवा का उपयोग करना होगा। –

+0

धन्यवाद - यह वह दिशा है जिस पर मैं लिंक के लिए –

+0

@EricMartinez Thnx जा रहा हूं। यह बहुत निराशाजनक है। यदि आपके पास घोंसले की रूटिंग है तो ईवेंट इमिटर्स के लिए कोई उपयोग नहीं है और सभी सेवाओं के साथ किया जाना चाहिए! मैं इस विशिष्ट कारण के लिए रेडक्स को एकीकृत करने के लिए देख रहा हूं। हालांकि मुझे कोणीय 2 पसंद है, इसकी सीमाएं हैं और इसे रेडक्स जैसे दर्शन को एकीकृत करने पर भी विचार करना चाहिए। मेरी परियोजनाओं में मैं पहले से ही रेडक्स की तरह कुछ करता हूं, रूट फ़ोल्डर में सेवाओं को पेश करता हूं और जहां आवश्यक हो वहां इंजेक्शन देता हूं। – Michelangelo

उत्तर

0

मुझे एहसास है कि यह अब बहुत पुराना है, लेकिन मार्ग पर राज्य गुजरना पूर्ववत है। यह ज्यादातर इसलिए है क्योंकि routerLink सामान्य है और संभावित बच्चों के किसी भी संख्या ले सकता है। तो अगर आप राज्य को पारित कर सकते हैं या अपनी घटनाओं को संसाधित कर सकते हैं, तो आप अनियंत्रित जटिलता के साथ समाप्त हो जाएंगे।

अभिभावक और बाल घटकों के बीच राज्य का प्रबंधन करने का सही तरीका shared service है। अनिवार्य रूप से, यह इन चरणों तक आता है:

  1. एक सेवा लिखें।
  2. सेवा को अपने मॉड्यूल से नहीं, बल्कि मूल घटक से (इसे बाहरी कोड के लिए पहुंच योग्य बनाने के लिए) प्रदान करें।
  3. माता-पिता और किसी भी बच्चे को सेवा की आवश्यकता होगी जो इसकी आवश्यकता होगी।

यह बच्चे में प्राप्त राज्य के साथ समान रूप से अच्छी तरह से काम करेगा और बच्चे से प्राप्त अधिसूचनाओं के साथ और मार्ग सेटअप को प्रदूषित नहीं करेगा।

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