मैं एक कोणीय घटक बना रहा हूं जिसे उपयोगकर्ता अपने ईमेल पर भेजे गए लिंक पर क्लिक करके एक्सेस करता है, जिसमें उनकी यूजर आईडी होती है। मुझे इसे बनाने की आवश्यकता है ताकि यह स्वचालित रूप से उन्हें व्यवस्थापक पृष्ठ पर पुनर्निर्देशित कर दे यदि उन्होंने अपना पंजीकरण पहले ही पूरा कर लिया है। हालांकि, ऐसा लगता है कि ngOnInit
ईवेंट के अंदर router.navigate
का उपयोग करने से काम नहीं चलता, त्रुटि दे रहा है
त्रुटि: ध्यान में न आया (वादे में): त्रुटि: BrowserModule पहले ही लोड किया जा चुका है।
यहाँ कोड है:
ngOnInit() {
this.activatedroute.params.subscribe(params => {
this.API.getUserData(params['id']).subscribe(res => {
console.log(res);
this.item = res;
sessionStorage.setItem('USER_ID', this.item._id);
if (res["registry_complete"]){
this.router.navigate(['/user-admin']);
} else {
}
});
});
}
मैं इसे कैसे पूर्ण करूं?
संपादित करें: त्रुटि क्या कहती है, इसके बावजूद, मुख्य मॉड्यूल में BrowserModule केवल एक बार आयात किया जाता है। अगर "this.router.navigate(['/user-admin']);" हटा दिया गया है, कोड ठीक चलता है। यह ngOnInit या कंस्ट्रक्टर फ़ंक्शंस के बाहर भी ठीक चलता है। मुझे इस त्रुटि का कारण संदेह है क्योंकि राउटर.नेविगेट मुख्य मॉड्यूल को फिर से लोड करने का प्रयास करता है, और चूंकि पृष्ठ लोड होने के बीच में है इसलिए यह ब्राउज़र मॉड्यूल को दो बार आयात करता है - लेकिन यदि ऐसा है, तो कैसे करता है em> एक कोणीय में इस तरह पुनर्निर्देशित करता है?
संपादित करें: यह वास्तव में उपयोगकर्ता-व्यवस्थापक रूटिंग मॉड्यूल में एक समस्या थी।
2 जवाब
त्रुटि कहती है कि किसी तरह, आपने अपने ऐप्स में एक से अधिक बार BrowserModule
आयात किया है। जैसा कि docs में बताया गया है, BrowserModule
मॉड्यूल को ऐप के रूट मॉड्यूल में आयात किया जाना चाहिए:
BrowserModule को किसी अन्य मॉड्यूल में आयात न करें। फ़ीचर मॉड्यूल और आलसी लोडेड मॉड्यूल को इसके बजाय CommonModule आयात करना चाहिए। उन्हें सामान्य निर्देशों की आवश्यकता है। उन्हें ऐप-वाइड प्रदाताओं को फिर से स्थापित करने की आवश्यकता नहीं है।
साथ ही, NoopAnimationsModule
और BrowserAnimationsModule
में BrowserModule
होते हैं, इसलिए यदि आप उनमें से किसी एक का आयात कर रहे हैं, तो आपको आयात BrowserModule
(यदि आपके पास है) को हटाना होगा।
/user-admin
द्वारा घटक लोड करने के लिए मार्ग मॉड्यूल जोड़ सकते हैं, और जिस मॉड्यूल में यह घटक आयात किया गया है
जांचें कि आप कौन से मॉड्यूल आयात कर रहे हैं .module.ts
यदि आप BrowserAnimationsModule
का उपयोग कर रहे हैं
इसे BrowserModule
से पहले रखें
और जांचें कि उप मॉड्यूल के आयात क्या हैं
संबंधित सवाल
नए सवाल
angular
Google से वेब फ्रेमवर्क के बारे में प्रश्न इस टैग का उपयोग कोणीय प्रश्नों के लिए करें जो एक व्यक्तिगत संस्करण के लिए विशिष्ट नहीं हैं। पुराने AngularJS (1.x) वेब ढांचे के लिए, कोणीयज टैग का उपयोग करें।