2016-09-05 14 views
5

मैंने कोणीय 2 को "चित्रित" चिह्नित राउटर का उपयोग करने से अपग्रेड किया है और आरसी 5 और आरसी 6 में "नया" राउटर का उपयोग करना शुरू कर दिया है। लेकिन अब मैं एक मुद्दा (RC6 में एक ही RC5 में शुरू किया था और अब भी) जहां एक घटक एक ही घटक है, लेकिन विभिन्न मापदंडों के साथ नेविगेट करने के लिए की जरूरत है कि होने (अन्य डेटा फिर एक allready ध्यान में रखते हुए यह है कि लाने के लिए, आधारित हो रहा है पैरामीटर पर)।एक ही घटक के लिए कोणीय 2 मार्ग

depricated रूटर में, निर्माता और AfterViewInit आदि जब this.router.navigate साथ घटक में नेविगेट जहां हर बार कहा जाता है। नए राउटर में एक दूसरे के बाद एक ही घटक को कॉल करते समय कन्स्ट्रक्टर और अन्य चीजें कॉल नहीं की जाती हैं। तो मुझे लगता है कि कुछ प्रकार का "जादू"/कैशिंग हो रहा है। यह भी ध्यान रखें कि घटक में मैं एक आवश्यक पैरामीटर और कुछ वैकल्पिक पैरामीटर भेजता हूं, इसलिए लिंक इस तरह दिखता है: http://localhost:2222/mycomponent/1;someotherparam=123

क्या प्रत्येक बार नेविगेट करने के लिए घटक को मजबूर करने का कोई तरीका है?

+0

नहीं एक महान जवाब है, लेकिन मुझे यकीन है कि आप उपयोग कर रहे NG2 सही ढंग से नहीं कर रहा हूँ। आपको अलग-अलग यूआरएल के साथ एक ही घटक पर रूटिंग नहीं करना चाहिए। अपने घटक में हेरफेर करने के लिए आंतरिक राज्य परिवर्तनों का उपयोग करें। http://stackoverflow.com/questions/35618463/change-route-params-without-reloading-in-angular-2/39322473#39322473 –

+0

मैं तनाव के लिए है: तुम सिर्फ यूआरएल की जरूरत है बदलने के लिए, इस जवाब की जाँच नेविगेशन कोड के रूप में अब यह पुराने राउटर पर काम किया गया है, जिसे अब हटा दिया गया है/हटा दिया गया है। यह कोणीय 2 के कई संस्करणों के माध्यम से लंबे समय तक काम करता था, लेकिन यह मुद्दा नए राउटर के साथ है। मुझे इसके लिए बैक/फॉरवर्ड बटन के साथ आगे और आगे नेविगेट करने में सक्षम होना चाहिए और यूआरएल पैरामीटर के आधार पर सही डेटा लोड किया गया है। बस बदलते यूआरएल मेरी स्थिति में मेरे लिए अच्छी तरह से काम नहीं करता है (espesially उपयोगकर्ता वापस/आगे बटन क्लिक करते हैं, डेटा घटक के लिए पुनः लोड करना होगा)। – alexsoftware

+1

अब मुझे विश्वास है कि यह कोणीय 2 राउटर के साथ एक बग है। जब एक नया मार्ग (यहां तक ​​कि जब एक ही घटक) घटक फिर से बनाया जाना चाहिए। मुझे घटक के कन्स्ट्रक्टर में इसे जोड़कर एक कामकाज मिला: router.events.subscribe ((घटना: घटना) => { यदि (घटनाक्रम नेविगेशनएंड घटना) {// सक्रिय रूट में पैरामीटर के आधार पर लोड डेटा}}) ; यह यह संभव है जब मार्ग परिवर्तन लेने के लिए बनाने के लिए, और कहा कि के आधार पर डेटा लोड होगा। – alexsoftware

उत्तर

5

पर पढ़ना मार्ग पैरामीटर

कारण यह है कि ActivatedRoute पर परम संपत्ति एक मानने योग्य है कोणीय 2.

विशेष खंड के लिए Rangle.io guide पर एक नजर डालें कि रूटर नहीं हो सकता है उसी घटक पर नेविगेट करते समय घटक को फिर से बनाएं। इस मामले में पैरामीटर को फिर से बनाए जाने के बिना पैरामीटर बदल सकता है।

तो अपने घटक निर्मित नहीं किया जाएगा, लेकिन आप (params, data, fragment, queryParams) मार्ग के कुछ हिस्सों कि आप में रुचि रखते हैं में परिवर्तन करने के लिए सदस्यता के लिए और अपने subscribe() कॉलबैक के रूप में इन प्रारंभ तरीकों कॉल कर सकते हैं।

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