以角度2获取整个网址内容的最佳方法是什么。基本上我需要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这样/ category-name?page = 1& sortBy = something& size = 30& sortOrder = ASC& L = UTF-8
我试图从activateRoute中获取下一个值,并使用所有信息组装一个对象,然后调用后端服务。
答案 0 :(得分:2)
你可以使用combineLatest:
获得两者Rx.Observable.combineLatest(
this.activatedRoute.queryParams,
this.activatedRoute.params)
.subscribe(([queryParam, params]) => {
...
});
答案 1 :(得分: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);
...
}