簡體   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