在Angular 6/7中获取URL参数的最佳方法

时间:2019-06-16 14:25:15

标签: angular angular-ui-router angular6 angular7

获取以下网址参数的最佳方法是:foo,bar,baz

$.fancybox.defaults.backFocus = false;

我尝试过:

https://somesite.com/results?foo=123&bar=69&baz=456

这有效,但是它会触发两次,第一次是未定义的,第二次是使用值的。我还读到,这是一种不好的做法,并且将来会贬值。

我尝试的第二种方法是:

this.route.queryParams.subscribe(param => {
    let foo = param['foo'];
    let bar = param['bar'];
    let baz = param['baz'];
})

这将记录正确的URL,但不会解析它。您将如何解析它,这是一种有效的方法吗?

在Angular6 / 7中解决我的问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

尝试:-

ngOnInit() {
    this.param1 = this.route.snapshot.paramMap.get('foo');
    this.param2 = this.route.snapshot.paramMap.get('bar');
    this.param3 = this.route.snapshot.paramMap.get('baz');
}

constructor(
public route:ActivatedRoute){
}

    ngOnInit(){
    const self = this;
       this.route.queryParams.subscribe(params => {
                self.foo= params['foo']; 
                self.bar= params['bar']; 
               self.foo= params['foo']; 

            });
    }