URL को देखते हुए, उदा। /path/path2/path3/123;sdf=df
और एक मार्गों विन्यास:कोणीय: URL द्वारा सभी रूट सेगमेंट कॉन्फ़िगरेशन को हल करें
{ path: 'path', data: { g: 'h' }, children: [
{ path: 'path2', data: { c: 'd' }, children: [
{ path: 'something', component: TestpageComponent, data: { a: 'b' } },
{ path: 'path3/create', component: TestpageComponent, data: { b: 'c' } },
{ path: 'path3/:id', component: TestpageComponent, data: { b: 'c' } },
] }
] },
क्या मैं जरूरत के क्रम में सभी स्तरों पर सभी data
मानकों का एक परिणाम सेट (यूआरएल के प्रत्येक खंड) प्राप्त करने के लिए सभी वर्गों के लिए एक वास्तविक विन्यास मिल रहा है।
मैं यूआरएल को सेगमेंट में विभाजित कर सकता हूं उदा।
console.log(this.router.parseUrl(url));
या अधिक स्पष्ट होने के
console.log(this.router.parseUrl(url).root.children['primary'].segments);
वापस आ जाएगी जो
[{"path":"path","parameters":{}},{"path":"path2","parameters":{}},{"path":"and","parameters":{}},{"path":"123","parameters":{"sdf":"df"}}]
तो, खंडों में यूआरएल बंटवारे एक समस्या नहीं है। हालांकि मुझे प्रत्येक सेगमेंट के लिए कॉन्फ़िगरेशन प्राप्त करने की आवश्यकता है।
मैं
console.log(this.router.config);
मैं विन्यास पेड़ के माध्यम से घटकों के साथ जाने के लिए और शाखा की आवश्यकता पता कर सकते हैं के साथ सभी मार्गों के लिए वास्तविक विन्यास प्राप्त कर सकते हैं, लेकिन यह मुसीबतों जैसे पैदा कर सकता है को create
सेगमेंट के विरुद्ध हल करते समय। तो, मैं कॉन्फ़िगरेशन को हल करने के राउटर के तरीके का उपयोग करना चाहता हूं कि यदि आंतरिक राउटर कार्यान्वयन में परिवर्तन होता है तो मुझे मेरा परिवर्तन करने की आवश्यकता नहीं होगी।
उदाहरण: कल्पना करें कि मेरे पास कुछ गार्ड द्वारा संरक्षित यूआरएल का 50% (उदा। केवल उपयोगकर्ताओं में लॉग इन किया जा सकता है) और अन्य 50% सुरक्षित नहीं है (सभी के लिए प्रदर्शित)। तो, नेविगेशन मेनू स्तर पर (router-outlet
के बाहर) मैं केवल उन लिंक को प्रदर्शित करना चाहता हूं जो वर्तमान उपयोगकर्ता के लिए प्रासंगिक हैं, इसलिए मुझे यह जानना होगा कि गार्ड द्वारा कौन से मार्ग सुरक्षित हैं। गार्ड/डेटा/जो कुछ भी समस्या का एक विशेष मामला है।
उदाहरण उदाहरण के साथ चिपके रहें, मैं किसी विशेष URL के लिए कॉन्फ़िगरेशन सेट प्राप्त करने के लिए एक सामान्य तरीका खोज रहा हूं।
क्या यह किसी भी तरह से संभव है?
यह सच है, यह काम करता है अगर आपको वर्तमान में सक्रिय मार्ग का डेटा प्राप्त करने की आवश्यकता है। मेरी समस्या यह है कि मेरे पास केवल एक यूआरएल है जिसका वर्तमान मार्ग से कोई लेना देना नहीं है; मैं यूआरएल को सक्रिय नहीं करना चाहता हूं, लेकिन मैं जानना चाहता हूं कि अगर मैं इस यूआरएल को सक्रिय करता हूं तो – smnbbrv
ने इस – smnbbrv
को स्पष्ट करने के लिए प्रश्न में एक उदाहरण जोड़ा है, तो मैं यह जानना चाहता हूं कि संपादन में आपका समाधान वही है जो मैं चाहता हूं से बचें। मैं मार्ग अनुमतियों और लिंक अनुमतियों की अलग-अलग देखभाल नहीं करना चाहता हूं। यद्यपि आप फ़ंक्शन का पुन: उपयोग करते हैं, फिर भी आप अनुमतियों को डुप्लिकेट कर रहे हैं, इसलिए आपको इसे दो स्थानों में बदलने की याद रखना होगा। मैं मेनू को स्वचालित रूप से समझना चाहता हूं कि कौन सा लिंक वर्जित है। – smnbbrv