Actualmente en Angular 4, si estoy tratando de verificar que esta ruta funcione:
/my/long/route Si voy a él directamente y arroja un error, el Router actualizará la URL a / , ya que no se han cargado rutas válidas. Si navego a la ruta de lanzamiento de errores en la aplicación, la URL se establece en la última ruta que funcionó.
¿Hay alguna manera de mantener la URL configurada en la URL de la ruta fallida? Desde una perspectiva de registro de errores, sería bueno si pudiera usar la URL real en la que estaba el usuario en lugar de buscarla en los eventos del enrutador, y para la depuración local sería bueno poder actualizar la página en lugar de necesitar para volver a él cada vez.
Basado en el código fuente:
Realmente no veo una manera de evitar el problema.
Por ahora solo voy a hacer esto (que tiene su propio conjunto de problemas):
this.router.events.subscribe(event => { if (event instanceof NavigationError) { this.routeFailed = true; setTimeout(() => this.location.replaceState(event.url)); } else { this.routeFailed = false; } });