मैं एक ऐसे अनुप्रयोग का विकास कर रहा हूं जिसके लिए मेरे पास उपयोगकर्ता क्षेत्र और एक व्यवस्थापक क्षेत्र है। मैंने इन्हें अलग कोणीय 2 मॉड्यूल में अलग कर दिया है। मैंने आलसी लोडिंग को सफलतापूर्वक कार्यान्वित किया है ताकि व्यवस्थापक मॉड्यूल केवल तभी लोड किया जा सके जब उपयोगकर्ता द्वारा '/ admin' का अनुरोध किया जाए।सुरक्षित रूप से आलसी लोड मॉड्यूल (कोणीय 2)
कोणीय 2 प्रलेखन से, मुझे लगता है कि मैं बहुत की तरह एक "canLoad" गार्ड निर्दिष्ट कर सकते हैं:
{
path: 'admin',
loadChildren: 'app/admin/admin.module#AdminModule',
canLoad: [AdminGuard]
}
और इतने की तरह एक समारोह canLoad एक AdminGuard वर्ग के भीतर लागू:
canLoad(route: Route): boolean {
return this.authService.isAdmin();
}
(जहां एडमिन() बैकएंड एपीआई को कॉल कर सकता है जो वर्तमान उपयोगकर्ता की भूमिका या उस तरह की कुछ चीज़ लौटाएगा)
लेकिन क्या यह वास्तव में किसी भी गैर- AdminModule लोड करने से व्यवस्थापक? जब तक कि मैं गलतफहमी नहीं कर रहा हूं, यह सब कोड क्लाइंट पर स्थित है, तो क्या क्लाइंट को "कैनलोड" विधि को संशोधित करने से रोकने के लिए कुछ भी है ताकि यह हमेशा सच हो जाए? इसलिए जैसा:
canLoad(route: Route): boolean {
return true;
}
इस प्रकार ग्राहक किसी भी मॉड्यूल वे चाहते हैं लोड करने के लिए अनुमति देता है।
स्पष्ट रूप से बैकएंड एपीआई को किसी भी कॉल को व्यवस्थापक स्थिति की आवश्यकता होगी, लेकिन ऐसा लगता है कि कोई भी उपयोगकर्ता व्यवस्थापक UI को देख पाएगा, जो कि मेरे लिए थोड़ा अजीब लगता है। क्या कोई इसे मेरे लिए साफ़ कर सकता है?
यह वास्तव में प्रश्न का उत्तर नहीं है। हालांकि यह एक अच्छी वार्तालाप से जुड़ा हुआ है। अब तक इस विषय पर मिली जानकारी मुझे इस सुविधा के लिए स्पष्ट कारण की पहचान करने में विफल रही है, या इसे हल करने में विफल रही है। मैंने कुछ मिनट पहले इस प्रश्न को पोस्ट किया: https://stackoverflow.com/questions/47613907/ – BBaysinger