मेरे पास यह यूआरएल है जो दो सहायक मार्गों (foo और bar) पर नेविगेट करके उत्पन्न होता है जो page मार्ग के बच्चे हैं:

localhost:4200/page/(tab1:foo//tab2:bar)

tab1 और tab2 राउटर आउटलेट के नाम हैं।

मैं इन दो मार्गों - foo और bar - को Angular2 की कार्यक्षमता का उपयोग करके एक स्ट्रिंग के रूप में कैसे प्राप्त करूं?

आइए मान लें कि सब कुछ ठीक से कॉन्फ़िगर किया गया है।

मेरा वर्तमान समाधान नियमित अभिव्यक्तियों के साथ Router की url संपत्ति का उपयोग कर रहा है, जो कि Angular2 की संभावनाओं को देखते हुए थोड़ा "हैकी" लगता है।

2
Michał Pietraszko 1 नवम्बर 2016, 20:27
आपका क्या मतलब है इसे प्राप्त करें? जैसे आप वहां नेविगेट करना चाहते हैं? या आप केवल console.log करना चाहते हैं, आप किस मार्ग पर हैं? आप किसी फ़ंक्शन में अपना मार्ग कॉल करना चाहते हैं? तुम्हारा क्या मतलब है मेरे दोस्त? :)
 – 
Bean0341
1 नवम्बर 2016, 20:45
मुझे url से foo और bar स्ट्रिंग प्राप्त करने की आवश्यकता है। मुझे पता है कि मैं router.url संपत्ति का उपयोग कर सकता हूं और सिर्फ स्ट्रिंग काट सकता हूं लेकिन क्या ऐसा करने का और 'एंगुलरिश' तरीका है?
 – 
Michał Pietraszko
1 नवम्बर 2016, 20:48

1 उत्तर

सबसे बढ़िया उत्तर

आप :express नामक एक वैकल्पिक परम जोड़ सकते हैं और पैरामीटर प्राप्त कर सकते हैं और फिर इसे पार्स कर सकते हैं।

मैंने आपके लिए एक सरल प्लंक प्रदान किया है: https://embed.plnkr.co/IPFX7gnCYN9OQJ5DFBVi/

अपडेट करें:

सहायक मार्गों के साथ: https://embed.plnkr.co/dVTPhJtrXjKDVPliE5qv/

आपको सक्रिय मार्ग को उस मुख्य मार्ग में इंजेक्ट करना चाहिए जिसमें शामिल है तो आप नीचे दिए गए कोड द्वारा फू और बार प्राप्त कर सकते हैं:

let children = this._route.snapshot.children,    

children.forEach(child => console.log((child.url[0] || {path:''}).path);
// ''
// foo
// bar

आशा है कि आप मदद करेंगे।

1
Michał Pietraszko 3 नवम्बर 2016, 17:53
धन्यवाद लेकिन आपका उदाहरण समस्या का समाधान नहीं कर रहा है क्योंकि आपके मामले में हमें एक स्ट्रिंग के रूप में एक स्ट्रिंग मिल रही है जो इसे Angular2 में सहायक मार्गों के उपयोग से असंबंधित बनाती है।
 – 
Michał Pietraszko
3 नवम्बर 2016, 00:21