2017-12-05 14 views
0

学習角度は....私はこの次のエラーを取得する簡単な練習http.get要求Angular5 RequestOptionsArgs検索とパラメータ違いは何ですか?以下

let params = new URLSearchParams(); 
params.set('term', term); 
params.set('media', 'music'); 
params.set('limit', '20'); 

let promise = new Promise((resolve, reject)=> { 
    this.http.get(this.apiRoot, {params}) 
     .toPromise() 
     .then(
     res => { 
      console.log(res.json()); 
      } 
    ) 
}); 
return promise; 

です:

Argument of type '{ params: URLSearchParams; }' is not assignable to parameter of type 'RequestOptionsArgs'. Object literal may only specify known properties, and 'params' does not exist in type 'RequestOptionsArgs'.

私はsearchparamsを変更するとエラーが離れて行くが、私がドキュメントをチェックするとhttps://angular.io/api/http/RequestOptionsArgs#params検索とパラメータの両方がURLSearchParamsタイプです...

これらの2つの違いは何ですか? ttributes?それらを正しく使用するには?どうして2つありますか?

答えて

2

私はそのような何かを行うことを提案し、このエラーを回避するために:

let params = new URLSearchParams(); 
params.set('term', term); 
params.set('media', 'music'); 
params.set('limit', '20'); 

let options = new RequestOptions({params}); 

let promise = new Promise((resolve, reject)=> { 
    this.http.get(this.apiRoot, options) 
     .toPromise() 
     .then(
     res => { 
      console.log(res.json()); 
      } 
    ) 
}); 
return promise; 

はまた角度のsource code我々はそれを見ることができますを探してsearchparamsは同じものとして扱われ、Angular 4.0.0以降の検索は推奨されていません。params。しかしAngular 5を使用しているのを見て、Httpクラスは推奨されていないため、HttpClientを切り替えて使用することをお勧めします。

0

が正しく使用ありがとう:

let params = new URLSearchParams(); 
params.set('term', term); 
params.set('media', 'music'); 
params.set('limit', '20'); 

let promise = new Promise((resolve, reject)=> { 
    this.http.get(this.apiRoot, {search: params}) 
     .toPromise() 
     .then(
     res => { 
      console.log(res.json()); 
      } 
    ) 
}); 
return promise; 
+0

私は検索作業を利用していますが、質問はなぜですか...検索とパラメータの違いは何ですか? –

関連する問題