あなたはそれを行うためにcombineLatestを使用することができます。
import { ActivatedRoute, Params } from '@angular/router';
import 'rxjs/add/observable/combineLatest';
...
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.sub = Observable.combineLatest(this.route.params,
this.route.queryParams, (params: Params, qparams: Params) => ({ params, qparams }))
.subscribe((allParams) => {
console.log(allParams.params);
console.log(allParams.qparams);
});
}
のparamsとqparamsはのparamの名前と値として値として、プロパティ名を持つオブジェクトになります。だから、ルートのために:のparams
http://localhost:4200/test1/paramvalue?qparam=qpvalue
allParamsと
RouterModule.forRoot([{
path: 'test1/:id',
component: Test1Component
}])
{
params: {
id: "paramvalue"
},
qparams: {
qparam: "qpvalue"
}
}
allParamsが2つのオブジェクト "のparams" と "qparams" 内ahveになります。 "オブジェクトオブジェクト"とqparams: "[オブジェクトオブジェクト]"とその他すべての実際のパラメータ – Michalis
Screenshot:https://i.imgur.com/brxzEjj.png – Michalis
@Michalisを追加しました。答えにもう少し詳しく、paramsの両方のプロパティがオブジェクトになります。 – JayChase