Лучший способ получить параметры URL в Angular 6/7 - PullRequest
0 голосов
/ 16 июня 2019

Как лучше всего получить параметры URL: foo, bar, baz

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'];
})

Это работает, но срабатывает дважды, причем первый раз не определен, а второй - со значениями. Я также читал, что это плохой способ сделать это, и в будущем его обесценивают.

Второй метод, который я попробовал:

this.router.events.subscribe((evt) => {
    if (evt instanceof NavigationEnd) {
     console.log(evt.url);
    }
 })

Это регистрирует правильный URL, но не анализирует его. Как бы вы это проанализировали и это эффективный метод?

Как лучше всего решить мою проблему в Angular6 / 7?

1 Ответ

0 голосов
/ 16 июня 2019

Попробуйте это: -

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']; 

            });
    }
...