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