将查询参数连接为字符串-AngularTypescript

时间:2019-10-09 11:31:02

标签: javascript angular string typescript concat

我正在尝试将我拥有的所有查询参数字符串连接到一个包括所有参数的最终查询中,但是我一直得到这个结果:

_filter=0=((startDate=ge=2019-09-30T22:00:00.000Z);(endDate=le=2019-10- 
03T22:00:00.000Z));1= 
(category=eq=Warning,category=eq=Error);&_limit=50&_sort=asc

烦人的0 =,1 =,2 =,....

预期结果如下:

_filter=((startDate=ge=2019-10-06T12:39:05.000Z;endDate=le=2019-10- 
07T23:59:59.999Z);(category=eq=ALERT,category=eq=META))"

这是我的代码:

generateQueryString(obj: any) {
     let query = [];
     if (obj.startDate && obj.endDate) {
       query = query.concat(this.buildDateQueryString(obj.startDate, obj.endDate)
      );
     }
     if (obj.category) {
       query = query.concat(this.buildCategoryQueryString(obj.category));
     } 
    return query;
  }

1 个答案:

答案 0 :(得分:0)

  1. 让我们假设您想传递一些数据,例如
const userData = {
    firstName: 'Arpit',
    lastName: 'Patel'
}
  1. 您可以像这样将对象传递给查询参数。
this.router.navigate(['/dashboard/details'], { queryParams: { user: JSON.stringify(userData) } });
  1. 然后在下一个组件中提取该对象,如下所示。
this.route.queryParams.subscribe(params => {
      const user= JSON.parse(params.user);
      console.log(user);
});
  1. 这将导致JSON对象。您可以直接访问它。