2017-12-12 7 views
2

Ich versuche, eine Route namens 'Ereignis' mit Parameter event_id in der URL zu haben.Nicht in der Lage, die Parameter von der dynamischen URL in Angular2 zu erhalten

App-Routing-Modul hat diesen

{ path: 'event/:event_id', component: EventComponent }, 

Die Komponente event_id von URL versucht, mit Aktiv Route zu erhalten.

import { ActivatedRoute, Params } from '@angular/router'; 
export class EventComponent implements OnInit { 
    event: JSON; 
    id: String; 
    constructor(private route: ActivatedRoute) { 
    } 
    ngOnInit() { 
    this.route.queryParams.subscribe(params => { 
     console.log('that kind of madness can\'t be undone'); 
     console.log(params['event_id']); // checking result 
    }) 
    } 

console.log (params ['event_id']) gibt ein leeres Objekt als Ergebnis.

+0

Sie verwenden 'routeParams' und wenn Sie verwenden müssen' queryParams' sollten Sie relative Routen Definition – Aravind

+0

Mögliche Duplikat von [Wie Parameter auf Angular2 Weg in Angular Weg zu bekommen?] (Https: // Stackoverflow .com/questions/40275862/how-to-get-parameter-auf-angular2-route-in-angular-way) –

+0

Es gibt drei verschiedene Wege, um Routing-Parameter zu verwenden, und die Syntax für jedes ist etwas anders. Daher ist es wichtig zu verstehen, welche Art von Parameter Sie benötigen, und die gesamte für diesen Typ geeignete Syntax zu verwenden. Eine Zusammenfassung der Typen und Syntax finden Sie hier: https://stackoverflow.com/questions/44864303/sending-data-with-route-navigate-in-angular-2/44865817#44865817 – DeborahK

Antwort

2

:eventId ist kein Abfrageparameter, es gehört zum Routenparameter, überprüfen Sie daher params Observable auf aktuelle Route aktivieren.

this.route.params.subscribe(params => { 
    console.log('that kind of madness can\'t be undone'); 
    console.log(params['event_id']); // checking result 
}) 
Verwandte Themen