Angular4 http获取URL参数

时间:2017-10-20 07:10:19

标签: angular rest typescript

我想在包含URL参数的Angular4中调用REST API。模板看起来像这样:

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

这是一个有效的例子:

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

我知道我可以自己连接网址:

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

但是我希望找到一个更好的解决方案,比如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而不自己连接?

1 个答案:

答案 0 :(得分:1)

而不是:

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

做的:

this.http.get<Array<ProductResponse>>(`http://localhost:61448/api/Product/language/${languauge}/name/${name}`,)
      .subscribe(data => {
      // do something with data
    });

其中languagename是您的参数。

请注意网址的特殊引号字符,并且您的参数必须位于${}

参考链接: https://basarat.gitbooks.io/typescript/docs/template-strings.html