2017-05-26 2 views
2

ich mit meinem Winkel-cli Projekt eine einfache Komponente schaffen versuchte, die Ladeparameter von URLKann nicht params von Route URL lesen

@Component({ 
    templateUrl: './confirm-registration.component.html', 
}) 
export class ConfirmRegistrationComponent implements OnInit { 

    constructor(private route: ActivatedRoute, 
       private router: Router) { } 

    ngOnInit() { 
    this.route.params.switchMap((params: Params) => { 
     return console.log('token:', params['registrationToken']); 
    }); 
    } 

} 

aber ich habe Fehler:

zu kompilieren fehlgeschlagen.

.../confirm-registration.component.ts (15,33): Argument of type '(params: Params) => void' is not assignable to parameter of type '(value: Params, index: number) => ObservableInput<{}>'. Type 'void' is not assignable to type 'ObservableInput<{}>'.

Ich benutze Angular in Version 4.0.3. wo habe ich Fehler gemacht?

+0

Sie dieses console.log versuchen können (this.route.snapshot.params [ 'registrationToken']) –

+0

was Ihr Weg ist, kann Sei es in req.query –

+1

Sie verwenden switchMap, die eine Observable zurückgeben sollte, aber Sie Ergebnis des Aufrufs von 'console.log' (in diesem Fall: void) zurückgeben. Bitte verwenden Sie "do" -Operator, um für Debugging-Zwecke an der Konsole zu loggen: – dzejdzej

Antwort

1

ich die Abfrage-Parameter mit diesem holen:

export class ConfirmRegistrationComponent implements OnInit { 

private registrationToken: string; 

constructor(private route: ActivatedRoute) {} 

ngOnInit() { 
this.route.params.subscribe(
    (params) => { 
    this.registrationToken = params['registrationToken']; 
    } 
) 
0

Um Abfrageparameter zu erhalten, habe ich dies mit eckigen-2. Ich bin mir nicht sicher, ob es mit Winkel-4

constructor(private route: ActivatedRoute) { 
 

 
} 
 

 
ngOnInit() { 
 
    let urParam = this.route.snapshot.queryParams['urParam']; 
 
}

Hoffnung funktioniert dies hilft

1

Als dzejdzej hat in seiner comment darauf hingewiesen, müssen Sie eine Observable zurückgeben. Dies scheint sich in den letzten Monaten geändert zu haben (zumindest hat es das letzte Mal, als ich es vor ein paar Monaten versucht habe, zusammengestellt), und sie haben die Dokumente noch nicht geändert.

in Ihrem Fall So könnte man einfach die gleiche beobachtbare zurück:

ngOnInit() { 
    this.route.params.switchMap((params: Params) => { 
    console.log('token:', params['registrationToken']); 
    return this.route.params; 
    }); 
} 
+0

Vielleicht habe ich etwas falsch gemacht, aber jetzt habe ich Fehler: Eigenschaft 'switchMap' existiert nicht auf Typ 'Observable '. –

+0

Sie müssen den Operator von rxjs importieren – mamuso