2017-05-19 22 views
6

Eğer bu başka bir yerdeyse özür dilerim, ama normal arama taktikleri beni başarısız oldu.Angular2 Rota tutulurken hata sayfası nasıl görüntülenir

API'dan 500 aldığımda özel bir hata sayfası görüntülemek istiyorum. Ben kullanarak, restangular kullanıyorum ve 500 aldığınızda hata sayfasına yönlendiren bir tepki önleme sahip değilim:

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

Bu, tüm eserlerini. Bununla birlikte, önceki URL'yi tarayıcı gezinme çubuğunda tutmak isterim, böylece kullanıcı yenilenirse, önceki sayfayı tekrar dener, oysa şimdi tekrar denemek için kırık sayfaya yeniden gitmeleri gerekir.

Teşekkürler!

cevap

1

Bunu yapmak için doğrudan bir yol yoktur. Ancak hata sayfasına yönlendirme yapabilir ve ya önceki sayfayı localStorage'a kaydedebilir ya da /error?page=redirectUrl numaralı paragraftan isteyebilirsiniz.

Yenilediğinizde, bu param değerini veya localStorage verilerini kullanarak tekrar bu sayfaya gidin.

+0

OK uygulamak teşekkürler - Ben Bunu yapacağım. –

+0

Probs yok. Memnun yardımcı olacaktır. –

-1

Hatalarla sonuçlanan bir ErrorComponent yapmalıyım, yalnızca bileşenleri başarı veya hata durumunda değiştirin.

Bu Buna ekleyebilirsiniz

try { 

} 
catch (e) { 

} 
1

ile paylaşılan bir bileşen tabii geçerli:

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; 
    }); 
} 

ve AppModule kurucusundan setRouteErrorHandler() arayın veya kendi APP_INITIALIZER

+0

Evet, bu çok güzel çalıştı - teşekkürler! –