8

रूटिकॉनफिग क्लास में गतिशील रूटिंग को कार्यान्वित करने के लिए रूटिंग क्षमताओं के साथ एक घटक (@RouteConfig) को सजाने के लिए उपयोग किया जा सकता है, उस घटक के लिए परिभाषित कुछ रूट परिभाषाएं हैं। अब, कैच इन रूट परिभाषाओं को रनटाइम (गतिशील रूप से) पर इंजेक्शन दिया जाना है।कोणीय 2 (टाइपस्क्रिप्ट)

कारण है, मान लीजिए कि मेरे पास एक ऐसा एप्लिकेशन है जिसमें मुझे प्रदर्शित करना है (यूआई) और परिभाषित करें (सजाने) 'एन' मार्गों की संख्या, प्रत्येक जो उस खाते से मेल खाता है जिसके लिए आवेदन लोड किया गया है और इसके परिणामस्वरूप अधिकार जो उस विशेष खाते से जुड़े हुए हैं। इस प्रकार, एक घटक के लिए सजावटी @RouteConfig में पूर्व परिभाषित मार्ग परिभाषाओं का कोई अर्थ नहीं है।

मेरा दृष्टिकोण हर बार एक नया खाता लोड होने पर सेवा कॉल करना है। और केवल संबंधित मार्गों को पुनर्प्राप्त करें और रनटाइम के दौरान उन्हें इंजेक्ट करें ताकि उस खाते के लिए यूआई में प्रदर्शित प्रत्येक रूट से संबंधित अन्य संबंधित घटकों पर नेविगेट किया जा सके।

import { Summary } from './components/summary'; 

@RouteConfig([ 
    /* 
    Let's say we need a seller dashboard to be displayed... 
    */ 
    //{ path: 'SellerDashboard', component: SellerDashboard } 
    { path: '/', component: Summary } 
]) 
class App { 
    contactInfo: ContactInfoModel; 
    public App(dataService: DataService) { 
     this.model = dataService.getContactInfo(); 
    } 
} 

ऊपर कोड स्निपेट में, मान लीजिए कि मैं विक्रेता डैशबोर्ड अपने आवेदन करने के लिए looged एक विक्रेता खाता के लिए इसी लोड करने के लिए कामना करता हूं। अब, यह बिक्री बिंदु डैशबोर्ड या किसी भी विक्रेता के लिए प्रासंगिक नहीं है (हमारे मामले में, विक्रेता की सूची डैशबोर्ड विक्रेता के लिए प्रासंगिक है) को प्रदर्शित करने के लिए कोई समझ नहीं है।

एक गिस्ट में, केवल उन्हीं मार्गों को इंजेक्शन देना जो आवश्यक स्थान पर सभी मार्गों को कॉन्फ़िगर करने के बजाय आवश्यक हैं।

संपादित करें 1:

यह सवाल एक सरल उपयोग के मामले या डुप्लिकेट इस पोस्ट (जो बाद में कहा गया था) पर चिह्नित की तुलना में एक परिदृश्य है। इस पोस्ट में उल्लिखित उत्तरों में सरल दृष्टिकोण हैं और वे भी अधिक सहज हैं।

+0

यह किया जा सकता है, लेकिन कोई आसान समाधान। [इस आलेख] पर एक नज़र डालें (http://blog.mgechev.com/2015/12/30/angular2-router-dynamic-route-config-definition-creation/), उम्मीद है कि यह मदद करता है ... – Sasxa

+0

@Sasxa सहायता के लिए बहुत - बहुत धन्यवाद। मैंने कोशिश की कि मेरी जरूरतों को पूरा करने वाले कुछ संशोधनों के साथ। महान लेख! मेरे लिए एक आकर्षण की तरह काम करता है। – darkdefender27

उत्तर

6

चेक इस पोस्ट:

http://blog.mgechev.com/2015/12/30/angular2-router-dynamic-route-config-definition-creation/

मूल रूप से लेखक एक वर्ग DynamicRouteConfigurator गतिशील @RouteConfig डेकोरेटर के लिए मार्गों को जोड़ने के लिए प्रतिबिंबित एपीआई का उपयोग करता है बनाता है।

Github लिंक:

https://github.com/mgechev/dynamic-route-creator/blob/master/app/components/app/app.ts

+0

यह मेरे उद्देश्य की सेवा की। धन्यवाद! – darkdefender27

+1

रूट रजिस्ट्री अब को बहिष्कृत कर दिया गया है। क्या ऐसा करने का कोई वैकल्पिक तरीका है? – Gary

+0

इस मुद्दे पर एक नज़र डालें: https://github.com/angular/angular/issues/9527 इससे मदद मिल सकती है – teone

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