2017-08-02 7 views

Antwort

1

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" 
    } 
} 
+0

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

+0

Screenshot: https://i.imgur.com/brxzEjj.png – Michalis

+0

@Michalis ich hinzugefügt etwas mehr Details zu der Antwort beide Eigenschaften des Params werden Objekte sein. – JayChase

Verwandte Themen