Angulaire 4 - Route de requête params provoquer chemin correspondent à l'échec

Après une recherche de plusieurs threads/questions sur les différents types de routage dans Angulaire 4, je ne peux pas résoudre un problème lié au passage de queryParams à un Angulaire de la 4 voie.

Lors du passage dans l'url

http://localhost/search;x=y

à travers le modèle [queryParams]={x: 'y'}

<a [routerLink]="/search" [queryParams]="{x: 'y'}">Navigate</a>

ou dans la classe du composant

this._router.navigate(['/search'], { queryParams: {x: 'y'} });

le résultat est le routeur jetant un match d'erreur:

Error: Cannot match any routes. URL Segment: 'search%3Fparam1%3Dtest1%26param2%3Dtest2'

Lors de la configuration de enableTracing de vrai, je peux voir le code de navigation le suspect personnages, ce qui est probablement la raison pour laquelle il ne se correspondent.

J'ai une obligation de gérer les url qui contiennent queryParams et les analyser pour les appels api, de sorte que la requête param route doit être utilisé au cours obligatoire ou facultatif params.

Quelqu'un a eu un problème similaire et si oui, est l'encodage de la racine (ahem.) cause du problème?

Pourriez-vous nous montrer le chemin de votre itinéraire dans la définition ? Il devrait être { path: 'search/:x', component: MyComponent}. Si non, voici votre erreur !
Pas tout à fait. QueryParams devrait pas être défini dans la définition de la route. Si ils sont ... puis que est le problème. 🙂

OriginalL'auteur soulofahero | 2017-09-01