web-dev-qa-db-fra.com

Angular2 Routerlink: ajouter des paramètres de requête

Comment puis-je ajouter des paramètres de requête à routerLink?

@RouteConfig {
   {path: '/search',   name: 'Search', component: SearchCmp}
}  

Disons que je veux router vers /search?q=asdf,

<a [routerLink]= " [ '/Search' , {q= 'asdf'}] ">Link 1</a>

cela résout en /search.

Est-il possible d'ajouter des paramètres de requête sans utiliser:

this.router.navigate( ['Search', { q: 'asdf'}]);

ou

<a href="/search?a=asdf"> Link 2 </a>

?

49
tisie

Si tu as besoin de quelque chose comme /search?q=asdf que vous pouvez simplement utiliser:

@RouteConfig {
   {path: '/search',   name: 'Search', component: SearchCmp}
}

//And to generate router Links use:

<a [routerLink]="['/Search']" [queryParams]="{q:'asdf'}"></a>

Ceci générera la balise href sous la forme <a href="/search" mais en cliquant sur la balise d'ancrage, vous accédez à l'URL /search?q=asdf. [queryParams] vous permettra d'ajouter les paramètres de requête avec "?", sinon ils seront ajoutés par ";". Vous pouvez obtenir ce paramètre dans votre SearchCmp en utilisant:

constructor(private _routeParams: RouteParams) {
   var queryParam = this._routeParams.get('q');
}
76
SaUrAbH MaUrYa

OP (Affiche originale) a demandé comment ajouter paramètres de requête via un lien de routeur, pas un paramètres de routeur comme @SaUrAbH MaUrYa a répondu.

Pour ajouter des paramètres de requête, vous devez utiliser [queryParams] contraignant:

<a [routerLink]="['/users']" [queryParams]="{ page: 1 }">next page</a>
86
pleerock