在 Angular 2 中获取 ActivatedRoute 参数和 queryParam

Fetch ActivatedRoute param and queryParam in Angular 2

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

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 这样的 /category-name?page=1&sortBy=something&size=30&sortOrder=ASC&L=UTF-8

我正在尝试从 activatedRoute 和 assemble 一个包含所有信息的对象中获取下一个值,然后调用后端服务。

您可以使用 combineLatest 获得两者:

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

我确实接受了之前的答案,但结果是queryParams有问题。有时 queryParams 存在有时不存在,因此我不一致 values.Using withLatestFrom 而不是 combineLatest 做到了这一点。

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