【问题标题】:send parameter in url (Angular 7)在 url 中发送参数(Angular 7)
【发布时间】:2018-12-15 09:36:46
【问题描述】:

想在 url 中以 Angular 7 发送参数,这样 url 应该看起来像 return example.com/search/users?q=tom.

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

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

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

【问题讨论】:

  • 你好。我已阅读您的问题,我发现您的术语“在 URL 中发送参数”非常令人不安。能不能多解释一下。你想要什么 ?加载带有特定 URL 参数的页面?从另一个站点询问一些信息以检索用户信息?为什么“TOM”在您的文本中,为什么 TOM 不在您的代码中?你能试着给我们更多的信息吗?谢谢
  • 他正在尝试使用 url 中的查询参数进行 API 调用

标签: angular angular7


【解决方案1】:

您应该可以使用HttpParam 来做到这一点。

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

【讨论】:

    【解决方案2】:

    添加到正确答案:

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

    这个类是不可变的——所有的变异操作都会返回一个新的 实例。

    这意味着这将起作用:

    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 初学者避免一些困惑...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 2019-08-18
      • 1970-01-01
      • 2017-04-15
      • 2020-05-13
      • 2015-12-03
      • 2019-08-11
      相关资源
      最近更新 更多