2017-01-01 68 views
1

在angular 2中获取完整url内容的最佳方式是什么?基本上我需要params和queryParams。现在我卡在这里:在Angular 2中获取ActivatedRoute参数和queryParam

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`s /分类名?页= 1 & sortBy =一些&大小= 30 &中将sortOrder = ASC & L = UTF-8

我试图让下一个值出来activatedRoute的并组装一个包含所有信息的对象,然后调用后端服务。

回答

2

您可以combineLatest同时获得:

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

我没有接受以前的答案,但事实证明,它与queryParams问题。有时queryParams有时候不存在,并且因为我有不一致的值。使用withLatestFrom而不是combineLatest做了这个窍门。

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