2017-10-19 120 views
0

在我的離子項目中,我使用API​​獲取航班詳細信息。在該API中,它具有名爲「airportResources」 的對象並且具有4個值(出發終端,到達終端,出發網關,到達網關)。但有時這個對象在api中不可用,或者所有的值都不可用(這意味着它有時僅包含出發端,或到達終端或任何兩個或三個值)。 我的問題是,當我嘗試顯示此值時,它顯示錯誤。 我可以如何處理這個問題。下面包括在響應的 屏幕快照(此圖像的airportResources對象中只有2個值) enter image description here如何處理API數據

TS代碼:

enter code here 

get_arrivalflights(){

var communicationParams = { 
    showLoader: true, 
    reqUrl: "", 
    reqBody: {}, 
    callBackSuccess: (response) => { 
    console.log(response); 
    this.objectData = response.flightStatuses; 

    }, 
    callBackFailure: (response) => { console.log("failure dude"); console.log(response); } 
}; 
this.restservice.makeGetRequest(communicationParams); 

}

HTML:

<div class="col" style="font-size: 18px;text-align: center">{{item.airportResources.departureTerminal}}</div> 

阿比電話中提供:

makeGetRequest(communicationParams: any) { 

    this.baseUrl = " the url i want to call "; 


    var loader; 
    if (communicationParams.showLoader == true) { 
     loader = this.loadingController.create({ 
     content: "" 
     }); 
     loader.present(); 
    } 
    this.http.get(this.baseUrl + communicationParams.reqUrl) 
     .map(response => response.json()) 
     .subscribe(communicationParams.callBackSuccess, function(respone) { 
      if (communicationParams.showLoader == true) { 
      loader.dismiss() 
      } 
      communicationParams.callBackFailure(respone); 
     }, 
     () => { 
      console.log('Authentication Complete'); 
      if (communicationParams.showLoader == true) { 
      loader.dismiss() 
      } 
     }); 
    } 

錯誤消息:(?) enter image description here

回答

0

在HTML中,使用aysnc運營商等來顯示和可選的參數得不到數據不存在時結構上的錯誤。

{{ (item | async)?.airportResources.departureTerminal }}