2

Rückkehr Ich habe Probleme, Parameter von einer Komponente zur nächsten Passieren eines Routers und aktivierten Route in Angular2 mitSnapshot Parameter/Dienstleistungen NaN in Angular 2

My EdmundsAPI Service:

getModels(makeNiceName: string): Observable<Models> { 
    return this.http.get(this.baseURL + 
     + makeNiceName + '/models?year=2017&view=basic' + this.apiKey) 
     .map(res => res.json()) 
     .catch(this.handleError); 
    } 

Mein ‚aus "Komponente (Macht):

goToModels(makeNiceName: string): void { 
    this.router.navigate ([ '/models', { data: makeNiceName } ]); 
    } 

Mein 'auf' Komponente (Modelle):
(Variable 'makeNiceName' nach 'der Exportklasse' declar ation):

makeNiceName: string = this.route.snapshot.params[ 'data' ]; 

    getModels(): void { 
    this._EdmundsAPIService.getModels(this.makeNiceName) 
     .subscribe(
     //Do Stuff here 
     error => this.errorMessage = <any>error); 
    } 

Meine API URL von Models.getModels() (von Chrome Browser Inspect -> Netzwerk):

BaseURL + /NaN/ Modelle year = 2017 & view = Grund? + apikey

Warum ist NaN anstelle meines ‚makeNiceName‘ variabel ist, was ein String ist, das ich meine Dienste weitergeben möchte eine URL machen

+1

versuchen 'this._EdmundsAPIService.getModels (makeNiceName)' insted – Jag

+1

@Jag das ist ein Ausschnitt aus einer ES6 Klasse, das wird nicht funktionieren weil "dies" erforderlich ist. – Adam

+1

Haben Sie das Debugging versucht, um sicherzustellen, dass 'makeNiceName' die Zeichenfolge ist, die Sie erwarten? – Adam

Antwort

1

Ihre Funktion getModels hat zwei Plus in einer Zeile, die NaN in eine Zeichenfolge einfügen scheint.

Ähnlich, wenn ich 'string' + + 'hello' auswerte, ist das Ergebnis "stringNaN". Aber wenn ich versuche 'string' + + 123 das Ergebnis ist "string123"

Try this:

getModels(makeNiceName: string): Observable<Models> { 
    return this.http.get(this.baseURL + 
    makeNiceName + '/models?year=2017&view=basic' + this.apiKey) 
    .map(res => res.json()) 
    .catch(this.handleError); 
} 
+0

was für ein dummer Fehler! Ähhh! Dank einer Million hast du mir Stunden beim Debuggen anderer Funktionen gespart .. Haha, danke nochmal @Adam! – Moshe

+1

Das passiert den Besten von uns! – Adam