简体   繁体   English

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

[英]Concatenate Query Params as string - Angular- Typescript

I'm trying to concatenate all the query params string that I have into a one final query including all params but I keep getting this result:我正在尝试将我拥有的所有查询参数字符串连接到一个包含所有参数的最终查询中,但我一直得到这个结果:

_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

with the annoying 0=, 1=, 2=, ....烦人的 0=, 1=, 2=, ....

The expected result is to be like that:预期的结果是这样的:

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

Here is my code:这是我的代码:

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. Let us assume you want pass some data like让我们假设您要传递一些数据,例如
const userData = {
    firstName: 'Arpit',
    lastName: 'Patel'
}
  1. You can pass this object into Query Params like this.您可以像这样将这个 object 传递到查询参数中。
this.router.navigate(['/dashboard/details'], { queryParams: { user: JSON.stringify(userData) } });
  1. Then extract this Object in next component which is called as below.然后在下一个组件中提取此 Object,如下所示。
this.route.queryParams.subscribe(params => {
      const user= JSON.parse(params.user);
      console.log(user);
});
  1. This will result in JSON object.这将导致 JSON object。 You can access it directly.您可以直接访问它。

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

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