können Sie combineLatest verwenden, das zu tun:
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 und qparams werden Objekte mit dem Eigenschaftsnamen als param name und dem Wert als der Wert sein. Also für eine Route:
RouterModule.forRoot([{
path: 'test1/:id',
component: Test1Component
}])
mit params
http://localhost:4200/test1/paramvalue?qparam=qpvalue
allParams wird
{
params: {
id: "paramvalue"
},
qparams: {
qparam: "qpvalue"
}
}
allParams ahve innerhalb 2 Objekte "params" und "qparams". Params ist in Ordnung, aber qparams hat params: "[Objekt Objekt]" und qparams: "[Objekt Objekt]" und alle anderen aktuellen Parameter – Michalis
Screenshot: https://i.imgur.com/brxzEjj.png – Michalis
@Michalis ich hinzugefügt etwas mehr Details zu der Antwort beide Eigenschaften des Params werden Objekte sein. – JayChase