Angular6 转换组形式获取请求查询参数

Angular 6 convert group form to get request query parameters

我有一个问题,我想使用 get 通过 Web API 请求获取一些信息,作为参数,我想要表单中的信息(作为过滤器表单)。

所以请求很简单:

  filterEvents() {
    this.http
      .get(environment.apiUrl + 'events/GetFilteredAxmCardsId', { params: { filter: this.filterFormGroup.value } })
      .subscribe(result => {
        this.axmCardIds = result.json() as number[];
      }, error => console.error(error));

    console.log(this.filterFormGroup.value);
  }

但是我在传递表单组值时遇到问题 url 看起来像

GetFilteredEvents?filter={"AxmCards":[9,7]}

当然对象可以有更多的属性。

看起来不太好,我可以手动参数,但是它需要大量的工作和维护,那么有没有一种简单的方法来解析这样的对象以获取查询参数?

使用 URL 搜索参数:

import {URLSearchParams} from '@angular/http';

...

let params = new URLSearchParams();
for(let key in this.filterFormGroup.value){
    params = params.set(key, this.filterFormGroup.value[key]);
}
this.http
  .get(environment.apiUrl + 'events/GetFilteredAxmCardsId', { params })