Angular使用HttpClient并向Get中添加了多个参数

时间:2019-03-08 19:16:09

标签: angular

在这里使用Angular6。

我的API称为:

    https://localhost:44300/list/pete/id/open

在我看来,我将此API称为:

  getData(name, id, status): Observable<any[]> {
    // Initialize Params Object
    let params = new HttpParams();

    // Begin assigning parameters
    params = params.append('name', name);
    params = params.append('id', id);
    params = params.append('status', status);

    return this.httpClient.get<any[]>(this.url + '/list', {  params: params });
 }

问题是当我的UI调用此getData方法时,对API的调用如下所示(如在控制台中所示):

https://localhost:44300/list?name=pete&id=981&status=open

此调用与我的实际API调用不同。如何进行更改并正确传递参数。

-更新的代码-

 getData(name, id, status): Observable<any[]> {
    return this.httpClient.get<any[]>(${ this.url } / list / ${ name } / ${ id } / ${ status });
  }

我得到这些错误:

Cannot find name $
Expected 1 or 2 arguments, but got 5
The left hand side of arithmetic operation must be of type any, number, bigint, enum type
',' expected

1 个答案:

答案 0 :(得分:1)

您忘记了反引号(`)

getData(name, id, status): Observable<any[]> {
    return this.httpClient.get<any[]>(`${this.url}/list/${name}/${id}/${status}`);
}

请参阅:Template literals (Template strings)