在 url 中发送参数 (Angular 7)

send parameter in url (Angular 7)

想要在 url 中发送参数 angular 7,这样 url 应该看起来像 return 示例。com/search/users?q=tom.

我在我的服务中使用以下语法。

 public searchUsers(obj):any{
        return this._http.get('example.com/search/users?q=', obj)
    }

我希望 url 看起来像 example.com/search/users?q=

您应该可以使用 HttpParam

const params = new HttpParams()
        .set('q', 'value here')
        .set('another_param', 'value_here');
return this.httpClient.get('example.com/search/users', { params })

正确答案补充:

如果您想知道为什么没有参数被传递,在引用的 HttpParams 文档中有一个关键提示

This class is immutable - all mutation operations return a new instance.

这意味着这会起作用:

let params = new HttpParams();
if ( limit ) {
  params.set('limit', String(limit));
}
params.set('search', keyword);

如果您想有条件地附加 HttpParams,请改用此变体:

let params = new HttpParams();
if ( limit ) {
  params = params.set('limit', String(limit));
}
params = params.set('search', keyword);

通过艰苦的方式学到了这一点。希望这可以帮助任何其他 TS 初学者避免一些困惑...