Vyhledávání na webu

typescript - Angular 2 http.get s parametry


Chci odeslat dotazovací parametry v rámci GET požadavku. Moje třída vypadá takto:

 @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
   }
 }

Jak to mohu udělat?

Odpověď č. 1

Pro tento účel můžete využít třídu URLSearchParams:

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

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

To bude mít za následek URL jako je tato (parametry jsou přidány do dotazovacího řetězce): http://...?param1=value1.

Podívejte se na dokumentaci této třídy:

  • https://angular.io/docs/ts/latest/api/http/index/URLSearchParams-class.html

Nyní poskytuje podporu pro kódování/dekódování parametrů.

Odpověď č. 2

To je docela jednoduché - můžete definovat své URLSearchParams a předat je jako druhý parametr metody http.get:

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 });

Související články