J'ai une application de test Angular 2 exécutant le dernier alpha (37). Il n'y a que trois routes, qui ressemblent à ceci:
@RouteConfig([ { path: '/', component: Home, as: 'home' }, { path: '/errors', component: Errors, as: 'errors' }, { path: '/about', component: About, as: 'about' } ])
Je peux accéder aux itinéraires, et lorsque je place les paramètres de la chaîne de requête dans l'URL, je peux les lire très bien. Cependant, quelques instants après avoir lu les paramètres, j'ai remarqué que l'itinéraire fonctionne bien et que l'URL est actualisée, en supprimant les paramètres de la chaîne de requête.
En d'autres termes, accéder à cette route:
Http: // localhost: 5555 / errors? Test = abc
Charge l'itinéraire /errors
, mais immédiatement après l'application, l'URL se transforme en:
Http: // localhost: 5555 / erreurs
Cela serait confus pour un utilisateur. Je souhaite garder les paramètres de la chaîne de requête dans l'URL.
Je sais, c'est en alpha, mais est-ce un bug ou j'ai oublié de configurer quelque chose sur le routeur? Comment puis-je conserver les paramètres de la chaîne de requête dans l'URL?
Merci!
Ceci est corrigé dans Alpha 41. La chaîne de requête est maintenant persiste.
Mise à jour pour Angular 2:
Pour préserver les paramètres de requête présents dans l'URL en cours, ajoutez
// import NavigationExtras import { NavigationExtras } from '@angular/router'; // Set our navigation extras object // that contains our global query params let navigationExtras: NavigationExtras = { preserveQueryParams: true }; // Navigate to the login page with extras this.router.navigate(['/someLink'], navigationExtras);
Pour plus d'informations, vérifiez ici :
Essayez ceci this.router.navigate (['target'], {preserveQueryParams: true});