2017-02-15 21 views
2

У меня возникла проблемы передачи параметров от одного компонента к другому, используя маршрутизатор и активированного маршрут Angular2Snapshot Параметр/Услуги возвращающейся NaN в угловом 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); 
    } 

My «из 'компонент (Делает):

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

My 'до' компонентов (модели):
(Variable 'makeNiceName' после 'declar класса Экспорт' ция):

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 из Models.getModels() (из браузера Chrome Осмотреть -> Сеть):

BaseUrl + /NaN/ модели год = 2017 & вид = базовая? + apiKey

Почему NaN быть вместо моей переменной «makeNiceName», который является строкой, которую я хотел бы передать мои услуги, чтобы сделать URL-адрес

+1

попробовать 'this._EdmundsAPIService.getModels (makeNiceName)' InstEd – Jag

+1

@Jag, что отрывок из класса ES6, что не будет работать потому что 'this.' требуется. – 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! Спасибо миллион, вы спасли мне часы отладки других функций .. Ха-ха снова спасибо @Adam! – Moshe

+1

Происходит к лучшему из нас! – Adam