web-dev-qa-db-fra.com

Comment définir les paramètres de requête sur URL Angular2?

Je dois définir une URL avec des paramètres de requête tels que /Questions?id=1234&pageid=0. J'ai essayé de le faire via router.Navigate['/Questions?id=1234&pageid=0'] mais pas de chance.

Après que le navigateur de navigation s'affiche comme /Questions%3Fid%3D1234%26pageid%3D0.

Je l'ai également essayé avec le réglage routerLink="/Questions?id=1234&pageid=0", mais même résultat.

Veuillez suggérer une solution pour le faire. J'utilise rc5 pour angular2.

22
amit_chauhan

J'ai trouvé une solution en séparant le routeur-lien et les paramètres de requête, comme ci-dessous:

<a [routerLink]="['/Questions']" [queryParams]="{id:1234,page:1}"></a>

Cela fonctionne bien pour moi.

15
amit_chauhan

Vous pouvez les passer comme élément dans le routeur, mais en dehors du tableau de commandes:

[routerLink]="["/Questions"], {queryParams: {id:1234, pageid:0}}"

cela génère ce que vous voulez: /Questions?id=1234&pageid=0

Ou vous pouvez l'utiliser par programmation:

this.router.navigate(['/Questions'], { queryParams: {id:1234, pageid:0} })

avec le routeur étant une instance de @angular/routerRouter

22
Pstr

Vous pouvez les passer en tant qu'éléments dans le tableau de commandes du routeur:

[routerLink]="['/Questions'] [queryParams]="{id:1234, pageid:0}} ]"

Voir aussi https://angular.io/docs/ts/latest/guide/router.html#!#query-parameters

6
Günter Zöchbauer

Vous devez mettre à jour votre router.navigate

this.router.navigate(['/Questions', {id: 1234, pageid: 0}]);
2
Volodymyr Khmil