web-dev-qa-db-fra.com

Angular 2 http.get avec params

Je souhaite envoyer des paramètres de requête dans une demande GET. Ma classe ressemble à ceci:

 @Injectable()
 export class Loader implements TranslateLoader{
  constructor(private http: Http){
   }
   getTranslation(lang: string): Observable<any>
   {
     return this.http.get(routes.Localization.Get) ;// in that place I need to pass params
   }
 }

Comment puis-je faire ceci?

14
Sveta Antrapovich

Vous pouvez utiliser la classe URLSearchParams pour cela:

getTranslation(lang: string): Observable<any> {
  let params = new URLSearchParams();
  params.set('param1', 'value1');

  return this.http.get(routes.Localization.Get, { search: params });
}

Cela se traduira par une URL comme celle-ci (les paramètres sont ajoutés dans la chaîne de requête): http://...?param1=value1.

Voir la documentation de cette classe:

Il prend désormais en charge les fournisseurs pour les paramètres d'encodage/décodage.

41
Thierry Templier

C'est assez simple - vous pouvez définir votre URLSearchParams et les passer dans le deuxième paramètre du http.get méthode:

import { URLSearchParams } from '@angular/http'

let params: URLSearchParams = new URLSearchParams();
params.set('param1', 'someValue');
params.set('param2', 'someValue');

return this.http.get(routes.Localization.Get, { search: params });
12
rinukkusu