Я пытаюсь извлечь параметры запроса из URL в angular2
, например:
this.activatedRoute.queryParams.subscribe((params: Params) => {
this.video0 = params['video0'];
this.video1 = params['video1'];
this.video2 = params['video2'];
this.video3 = params['video3'];
// alert("params are: "+ video0+", "+video1+", "+video2+", "+video3);
});
И затем я заполняю глобальные переменные, которые мне нужно использовать для вызова другого метода внутри component
, но я не получаю значения в глобальных переменных. "
Все внутри ngOnInit
и вот так выглядит весь код:
video0: string;
video1: string;
video2: string;
video3: string;
constructor(private activatedRoute: ActivatedRoute) { }
ngOnInit() {
this.activatedRoute.queryParams.subscribe((params: Params) => {
this.video0 = params['video0'];
this.video1 = params['video1'];
this.video2 = params['video2'];
this.video3 = params['video3'];
// alert("params are: "+ video0+", "+video1+", "+video2+", "+video3);
});
this.sharedRequestPath = this.prepareSharedLinkRequestPath(this.video0,this.video1,this.video2,this.video3); // all these values are undefined or null.
}
Однако, когда я это делаю, alert(params['video0'])
получает значения.
UPDATE
Изменен код для заполнения значений:
this.activatedRoute.queryParams.subscribe((params: Params) => {
this.video0 = params['video0'];
this.video1 = params['video1'];
this.video2 = params['video2'];
this.video3 = params['video3'];
// alert("params are: "+ video0+", "+video1+", "+video2+", "+video3);
this.sharedRequestPath = this.prepareSharedLinkRequestPath(this.video0,this.video1,this.video2,this.video3);
alert("sharedRequestPath is "+this.sharedRequestPath);
});
Однако теперь я вижу, как загружаются два оператора alter, один без параметров, а когда я его закрываю, другой загружается с параметрами. Почему это так?
Как мне этого добиться? Не в состоянии понять.