2016-12-02 1 views
0

Я пытаюсь использовать get для установки вида в угловом2. хава компонент и сервисСлужба Angular2 не возвращает результат к наблюдаемому из http.get к компоненту

в шаблоне у меня есть seachbutton, что пожары поиска Funtion на компоненте

//component 
searchResult : SearchData[]; 
searchData(){ 
    this.search.geSearchResultPart1(this.form.searchterm) 
     .subscribe(
      searchresult => { 
        this.searchResult = searchresult 
        console.log( searchresult); // undefined 
       }, 
       err => { 
        console.log(err); 
       }); 
} 

В службе я сделать

getSearchResultPart1(searchWord : string) : Observable<SearchData[]> { 
    let fullURL = 'url=http://domain.nl/searchData.php?q='+searchWord;  
    return this.http.get(fullURL) 
     .map((res: Response) => { 
      res.json().data as SearchData[] 
      console.log(res.json()); // Shows an array with objects 
     }) 
     .catch((error:any) => Observable.throw(error.json().error || 'Server error')); 
} 

Я также включил (и необходимых других импортов)

import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/catch'; 

Служба технической поддержки e показывает ответ на console.log, но он не возвращает данные. Я искал и следил за несколькими лотками, но результата не получилось. Я думаю, что я делаю это, но забываю о маленькой вещи, но я не знаю, что.

ответ

2

Если вы используете => с {} вам нужно явно return

return this.http.get(fullURL) 
    .map((res: Response) => { 
     res.json().data as SearchData[] 
     console.log(res.json()); // Shows an array with objects 
     return res.json(); 
    }) 
+1

Спасибо, первый я написал это Whiteout {}, но это не работает на компоненте. Поэтому я добавил журнал, чтобы проверить ответ и забыли ответ. Я отвечу на ваш ответ через 2 минуты. – user1664803

Смежные вопросы