如何从Angular 8中url中的查询参数中检索对象

时间:2019-11-27 09:57:45

标签: angular

我想知道是否有一种方法可以从URL中的queryParams中检索对象数组。 我要检索的对象应如下所示。

events: [
 {
   locations: ['123456789', '987654321']
   period: {
     from: '2019-11-19',
     to: '2019-11-27'
   }
 },
 {
   locations: ['123456789']
   period: {
     from: '2018-01-23',
     to: '2018-01-25'
   }
 }
],
days: [0, 1, 2, 3],
groupBy: 'days',
extraSeries: ['visits']

所以我想知道url中的queryparams应该是什么样子,以及如何从url中检索它们。例如,如何获取返回对象数组的queryParam events

之所以需要在queryParams中,是因为我希望能够与基于queryParams设置了过滤器的其他用户共享一个网址。

3 个答案:

答案 0 :(得分:3)

您可以使用queryParams

请注意demo,对您有帮助

import { ActivatedRoute } from '@angular/router';


 constructor( private route: ActivatedRoute) { }

 ngOnInit() {
     this.route.queryParams.subscribe(params => {
        let event = params['events'];  
      });
  }

答案 1 :(得分:1)

我不会按原样共享参数。您可以base64加密和解密参数以进行共享。您的示例数据已加密:

ZXZlbnRzOiBbDQogew0KICAgbG9jYXRpb25zOiBbJzEyMzQ1Njc4OScsICc5ODc2NTQzMjEnXQ0KICAgcGVyaW9kOiB7DQogICAgIGZyb206ICcyMDE5LTExLTE5JywNCiAgICAgdG86ICcyMDE5LTExLTI3Jw0KICAgfQ0KIH0sDQogew0KICAgbG9jYXRpb25zOiBbJzEyMzQ1Njc4OSddDQogICBwZXJpb2Q6IHsNCiAgICAgZnJvbTogJzIwMTgtMDEtMjMnLA0KICAgICB0bzogJzIwMTgtMDEtMjUnDQogICB9DQogfQ0KXSwNCmRheXM6IFswLCAxLCAyLCAzXSwNCmdyb3VwQnk6ICdkYXlzJywNCmV4dHJhU2VyaWVzOiBbJ3Zpc2l0cydd

加密的数据并不短,但具有url友好字符

答案 2 :(得分:1)

它可以帮助您尝试以下代码:

import { ActivatedRoute } from '@angular/router';


constructor( private route: ActivatedRoute) { }

ngOnInit() {
  this.route.queryParams.subscribe(
  params => {
    let event = params['events'];  
  });
}