繁体   English   中英

Angular 5 HTTP Get 请求参数 - 发送多个对象

[英]Angular 5 HTTP Get request Parameters - Send multiple objects

我正在尝试使用对象作为参数发出 HTTP get 请求。 这可能吗? 我已经尝试了多种方法,但没有成功。 如果我只发送字符串,而不是整个班级,它就可以工作

export class City {
  id: number;
  name: string;
}

  const params = new HttpParams().set('city', city)
  return this.http.get('http://localhost:3000/api/place/', {params})

这是一个小辅助函数,它对对象中的任何类似 Object 的属性进行 JSON 编码,将原语保留为字符串。 显然您需要在后端解码查询。 如果您不想要 lodash,请将 _.isObjectLike 更改为其他检查类型的方式。

require * as '_' from 'lodash';
private objectToHttpParams(obj: any) {
    return Object.entries(obj || {})
      .reduce((params, [key, value]) => {
        return params.set(key, _.isObjectLike(value) ? JSON.stringify(value) : String(value));
      }, new HttpParams());
  }

// use:
const params = this.objectToHttpParams({city});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM