2017-08-02 54 views
0

This is the Image of the API request results如何以角度創建HTTP請求並從對象獲取主體?

在這裏,我寫了一個名爲FaqService使HTTP請求服務,並呼籲在一個組件,它的服務。

getServers(data: string){ 
    return this.http.get(Staticdata.apiBaseUrl + "/2.2/search/advanced?key="+ Staticdata.key +"&access_token="+ Staticdata.access_token +"&/2.2/search/advanced?order=desc&sort=activity&accepted=True&closed=True&title=" + data + Staticdata.redirectUrl + "&filter="+ Staticdata.filters) 
     .map(
     (response: Response) => { 
      const items = response.json(); 
      return items; 
     }) 
    .catch(
     (error: Response) => { 
      return Observable.throw(error); 
     }); 
    } 
} 

component.ts

onRecievingResults(value){ 
    console.log(value); 
    this.router.navigate(['results'], {relativeTo: this.route}); 

    this.faqService.getServers(value) 
     .subscribe(
     (item: any[]) => { 
      console.log(item); 
     }, 
     (error) => console.log(error) 
    ); 
} 

在這裏,在這個HTML模板我如何通過API的結果,並得到身體。

</div> 
<div class="entryTitle" *ngFor = "let item of items"> 
<h1>Search results for :{{ item.body }}</h1> 
</div> 
</div> 
+1

so what問題 –

+0

你到底面臨什麼問題? –

回答

1

{{ item.body }}將參考this.item.body在您的組件。所以,你需要創建一個字段:

public item; // <------- add the field 
onRecievingResults(value){ 
    console.log(value); 
    this.router.navigate(['results'], {relativeTo: this.route}); 

    this.faqService.getServers(value) 
     .subscribe(
     (item: any[]) => { 
      console.log(item); 
      this.item = item; // <------- assign it here 
     }, 
     (error) => console.log(error) 
    ); 
} 

,改變你的HTML:

<h1>Search results for :{{ item?.body }}</h1> 

的truthy檢查。

+0

@KaranDesai哦,我沒有看到。我認爲這是一個範圍問題,因爲OP沒有將響應分配給'this.items'。如果情況並非如此,那麼你是對的。 – echonax

+0

@KaranDesai是的,我想要它被打印 –

+0

是的,我後來意識到它。評論刪除:) –