web-dev-qa-db-ja.com

Angular 2パラメータ付きのhttp.get

GETリクエスト内でクエリパラメータを送信したい。私のクラスは次のようになります。

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

これどうやってするの?

14

これにはURLSearchParamsクラスを活用できます:

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

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

これにより、次のようなURLが生成されます(パラメーターはクエリ文字列に追加されます):http://...?param1=value1

このクラスのドキュメントを参照してください。

現在、プロバイダーはエンコード/デコードパラメーターをサポートしています。

41

これは非常に簡単です-URLSearchParamsを定義し、http.getメソッドの2番目のパラメーターで渡すことができます。

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