2017-02-15 62 views
2

我無法使用路由器從一個組件到下一個參數傳遞和激活路線Angular2快照參數/服務在角2

我EdmundsAPI服務返回楠:

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); 
    } 

我的「從'組分(使):

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

我的 '到' 組分(型號):
(變量 'makeNiceName' 之後 '出口類' declar通貨膨脹):從Models.getModels

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

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

我的API URL()(從瀏覽器Chrome的檢查 - >網絡):

的BaseURL + /NaN的/車型年= 2017年&視圖=基本? + apiKey

爲什麼NaN的代替我「makeNiceName」變量,這是我想傳遞給我的服務做一個URL字符串被

+1

嘗試'this._EdmundsAPIService.getModels(makeNiceName)'insted的 – Jag

+1

@Jag這是從ES6類的一個片段,這是行不通的因爲這是必需的。 – Adam

+1

您是否嘗試過調試以確保'makeNiceName'是您期望的字符串? – Adam

回答

1

你函數getModels在一行中有兩個加號,這似乎將NaN插入到一個字符串中。

同樣,當我評估'string' + + 'hello'結果是"stringNaN"。但是,當我嘗試'string' + + 123結果是"string123"

試試這個:

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

多麼愚蠢的錯誤! ughh!萬分感謝,你爲我節省了幾個小時的調試其他功能..哈哈再次感謝@亞當! – Moshe

+1

發生在我們身上! – Adam