2017-05-19 17 views
6

रखते हुए त्रुटि पृष्ठ को प्रदर्शित करने के लिए कैसे करें अगर यह कहीं और है, लेकिन मेरी सामान्य खोज रणनीति मुझे विफल कर दी है।कोणीय 2 मार्ग

जब मैं एपीआई से 500 प्राप्त करता हूं तो मैं कस्टम त्रुटि पृष्ठ प्रदर्शित करना चाहता हूं। मैं restangular उपयोग कर रहा हूँ और जब मैं 500 प्राप्त एक प्रतिक्रिया इंटरसेप्टर कि त्रुटि पृष्ठ पर रीडायरेक्ट है, का उपयोग करते हुए:

this.router.navigate(['/error']);

यह सब काम करता है। हालांकि, मैं पिछले यूआरएल को ब्राउज़र नेविगेशन बार में रखना चाहता हूं ताकि जब उपयोगकर्ता रीफ्रेश करता है तो यह पिछले पृष्ठ को दोबारा कोशिश करता है, जबकि अभी उन्हें फिर से प्रयास करने के लिए टूटे हुए पेज पर फिर से नेविगेट करना होगा।

धन्यवाद!

उत्तर

1

ऐसा करने का कोई सीधा तरीका नहीं है। लेकिन आप त्रुटि पृष्ठ पर रीडायरेक्ट कर सकते हैं और या तो पिछले पृष्ठ को स्थानीय स्टोरेज में सहेज सकते हैं या इसे रख सकते हैं मैं पैरा /error?page=redirectUrl का अनुरोध करता हूं।

जब आप रीफ्रेश करते हैं तो उस पैरामेट मान या स्थानीय स्टोरेज डेटा का उपयोग करके आप उस पृष्ठ पर फिर से नेविगेट करते हैं।

+0

ठीक लागू, धन्यवाद - मैं वह करूँगा –

+0

कोई जांच नहीं। खुशी है कि यह मदद करेगा। –

-1

मुझे त्रुटियों पर एक त्रुटि कॉम्पोनेंट बनाना चाहिए था, बस सफलता या त्रुटि पर घटकों को स्वैप करें।

यह बिल्कुल आप इस जोड़ सकते हैं एक

try { 

} 
catch (e) { 

} 
1

के साथ एक साझा घटक है:

setRouteErrorHandler(): void { 
    let errorRoute = null; 

    this.router.errorHandler = (error): void => { 
     this.location.go(errorRoute.url); 
     this.router.navigate(['/error'], { skipLocationChange: true, replaceUrl: true }); 
    }; 

    this.router.events 
     .filter((next) => next instanceOf NavigationError) 
     .subscribe((next) => { 
      errorRoute = next; 
    }); 
} 

और AppModule निर्माता से setRouteErrorHandler() फोन या अपने खुद के APP_INITIALIZER

+0

हाँ यह खूबसूरती से काम किया - धन्यवाद! –

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