Angular 获取角度2中的ActivatedRoute参数和queryParam

Angular 获取角度2中的ActivatedRoute参数和queryParam,angular,rxjs5,Angular,Rxjs5,在angular 2中获取整个url内容的最佳方法是什么。基本上我需要params和queryParams。现在我被困在这里: ngOnInit() { this.activatedRoute.queryParams.subscribe(queryParam =>{ console.log(queryParam); }); this.activatedRoute.params.subscribe(params =>{ const category = params['cate

在angular 2中获取整个url内容的最佳方法是什么。基本上我需要params和queryParams。现在我被困在这里:

ngOnInit() {
this.activatedRoute.queryParams.subscribe(queryParam =>{
  console.log(queryParam);
});
this.activatedRoute.params.subscribe(params =>{
  const category = params['category'];
  this.seoService.setTitle(category);

  // This is wrong because i also need queryParams here
  this.categoryService.updateCategory(category);

     });
   }
}
这是我能想到的最好的了。 我的目标是像这样的url/类别名称?page=1&sortBy=something&size=30&sortOrder=ASC&L=UTF-8


我试图从activatedRoute中获取下一个值,并使用所有信息组装一个对象,然后调用后端服务

您可以使用CombineTest获得这两个选项:

Rx.Observable.combineLatest(
    this.activatedRoute.queryParams,
    this.activatedRoute.params)
.subscribe(([queryParam, params]) => {
    ...
});

我确实接受了前面的答案,但结果发现它与queryParams有问题。有时查询参数存在,有时不存在,正因为如此,我的值不一致。使用withLatestFrom而不是CombineTest就可以做到这一点

this.activatedRoute.params.withLatestFrom(this.activatedRoute.queryParams)
                          .subscribe(([params,queryParam ]) =>{
            const category = params['category'];
            let urlSearchParams : URLSearchParams = this.assembleSearchParams(queryParam);
            ...
}