2017-08-03 72 views
0

文件結構圖像Http請求不列入取輸入值

enter image description here

export class FaqService { 
public inputValue; 
constructor(private http: Http) {} 

ngOnInit() {} 

setData(val) { 
this.inputValue = val; 
    console.log(this.inputValue); 
} 

getData() { 
    return this.inputValue; 
} 

getServers() { 
    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=" + this.inputValue + Staticdata.redirectUrl + "&filter="+ Staticdata.filters) 
     .map(
     (response: Response) => { 
      const items = response.json(); 
      return items; 
     }, 
    ) 
    .catch(
     (error: Response) => { 
      return Observable.throw(error); 
     } 
); 
} 
} 

在上述I類在從一個父組件的方法setData()獲取數據,我不能夠通過取出值爲http get request

的HTTP GET請求去這樣:order=desc&sort=activity&accepted=True&closed=True&title=undefined&site=stackoverflow

在標題字段它需要未定義的值。

import { Component, OnInit } from '@angular/core'; 
import { FaqService } from '../faq.service'; 

@Component({ 
selector: 'app-search-results', 
templateUrl: './search-results.component.html', 
styleUrls: ['./search-results.component.css'], 
providers: [FaqService] 
}) 

export class SearchResultsComponent implements OnInit { 
data: any[]; 
item: any[]; 

constructor(private faqService: FaqService) { 
} 
ngOnInit() { 

    this.faqService.getServers() 
     .subscribe(
     (data) => { 
      this.item = data.items; 
      console.log(this.item); 
     }, 
     (error) => console.log(error) 
    ); 
} 
} 

在這裏,我調用子組件的getServers()方法。 預先感謝您。

faq.component.html

<input [(ngModel)]="inputValue" placeholder="Search FAQ" type="text"/> 
<button type="submit" id="headerSearchbutton" (click)="onRecievingResults(inputValue)"></button> 

這裏我把輸入使用ngModel並將該值傳遞給onRecievingResults功能。

onRecievingResults(value) { 
    this.faqService.setData(value); 
} 
+2

你在哪裏設置數據?你在哪裏叫'getServers'? – echonax

+0

你一定'getServers'將調用後'setData'稱爲 –

+0

不,我不知道這一點.PLS提出任何解決方案,如果u有。 @sachilaranawaka –

回答

0

@Samson,如果我理解正確的事件順序,inputValue將在FaqService因爲getServers未定義()被調用之前調用setData()被調用。該組件從其ngOnInit()方法中調用getServers(),但直到單擊headerSearchbutton時它才調用setData()。

看來getServers()點是執行基於無論用戶搜索已輸入到現場,不是嗎?如果是這樣,而不是從組件的ngOnInit()中調用getServers(),爲什麼不在單擊按鈕時調用onRecievingResults?

+0

因爲我想在其他組件的結果,所以我不能把它稱爲onRecievingResults() –