2017-10-20 18 views
0

URLパラメータを含むAngular4でREST APIを呼び出したいとします。テンプレートは以下のようになります。Angular4 http get URLパラメータ

http://localhost:61448/api/Product/language/{languauge}/name/{name} 

これは実施例である:

this.http.get<Array<ProductResponse>>('http://localhost:61448/api/Product/language/' + 'en-us' + '/name/' + 'apple',) 
     .subscribe(data => { 
     // do something with data 
    }); 

しかし、私は見つけることを期待していた。

http://localhost:61448/api/Product/language/en-us/name/apple 

私は私ができる知っているだけでURL自分連結HttpParams

const params = new HttpParams() 
.set('language', 'en-us') 
.set('name', 'apple'); 

this.http.get<Array<ProductResponse>>('http://localhost:61448/api/Product', {params : params}).subscribe(data => { 
    // do something with data 
}); 

しかし、これは(クエリパラメータを含む)は、次の要求を生成します:

http://localhost:61448/api/Product?language=en-us&name=apple 

はそれを連結せずに自分自身を右のURLを生成する方法はありますか?

+0

はこの答えを見てみましょう... [https://stackoverflow.com/a/41533506:

予告特殊な引用符のURLの文字とあなたのparamsは${}

refのリンク内でなければなりません

/5874913](https://stackoverflow.com/a/41533506/5874913) – seven

+1

@sevenあなたの提案された回答は私を助けません、彼らはクエリパラメータを使用しています!複製フラグを削除してください。 –

+1

答えはいいえです。テンプレート文字列を使って読みやすくするだけです。 –

答えて

1

の代わり:

this.http.get<Array<ProductResponse>>('http://localhost:61448/api/Product/language/' + 'en-us' + '/name/' + 'apple',) 
     .subscribe(data => { 
     // do something with data 
    }); 

は行います

languagenameがあなたのparamsある
this.http.get<Array<ProductResponse>>(`http://localhost:61448/api/Product/language/${languauge}/name/${name}`,) 
     .subscribe(data => { 
     // do something with data 
    }); 

https://basarat.gitbooks.io/typescript/docs/template-strings.html

+0

それは正確に私が探していたものではありませんが、私のaproachと私のために十分な方法は良いです。ありがとう! –

+0

よく、あなたの質問の私の理解から、あなたが探しているものは、ほとんど不可能ですtypescript/angularはどこの変数を入れてURLを知ることができません。あなたはそれのためのアンカーを持っている必要があります。それがこの方法のためのものです。 –

関連する問題