2017-08-19 181 views
1

讀取以.json文件中的數據我有資產JSON文件文件夾,名爲data.json如何打字稿

{ 
    "response": { 
     "sales_amount": 0, 
     "collection_amount": 0, 
     "carts_amount": 736.63, 

} 
} 

我做這樣得到的service.ts數據文件

my_data: any; 
    public getResponseData() : Promise<any> { 
     if(typeof(this.my_data) === "undefined") { 
      return this.http.get('assets/data.json') 
      .toPromise().then(res => { 

            this.my_data = res.json().response; 
            return this.my_data; 
       }).catch(this.handleError); 
     } else { 
      return Promise.resolve(this.my_data); 
     } 


    } 

這裏我得到的this.my_data響應,但在component.ts文件我正在做這樣的

ngOnInit(){ 


     this.myService.getResponseData().then(response => this.detailsdata = response); 
} 

但在這裏.detailsdata我沒有得到任何東西。

並在此之後我想顯示sales_amountcollection_amountHTML文件。

<div> 
    <span>sales amount</span> 
</div> 

在地方的銷售金額我要顯示的值 如何做到這一點。 我很新的typescript.can任何人請幫助我這一點。

回答

1

您的代碼看起來正確。我只是在測試應用程序中檢查過。你需要的僅僅是html文件中的幾行代碼。

請將下列代碼添加到您的HTML文件中。

<p><b>sales amount:</b> {{ detailsdata?.sales_amount }}</p> 
<p><b>collection amount:</b> {{ detailsdata?.collection_amount }}</p> 
<p><b>carts amount:</b> {{ detailsdata?.carts_amount }}</p> 

順便說一句,你的JSON數據是無效的。在carts_amount屬性後刪除逗號。

{ 
    "response": { 
    "sales_amount": 6000.77, 
    "collection_amount": 399.57, 
    "carts_amount": 736.63 
    } 
} 

更新:

ngOnInit(): void { 

     this.myService.getResponseData().then((value) => { 
      //SUCCESS 
      console.log(value); 
      this.detailsdata = value; 

     }, (error) => { 
      //FAILURE 
      console.log(error); 
     }) 
    } 
+0

感謝您response.Actually我試圖爲u建議(

銷售金額: {{detailsdata .sales_amount}}

)。 但我沒有得到任何結果。 和下面的代碼我沒有得到任何結果在控制檯。 ngOnInit(){ this.myService.getResponseData()。then(response => this.detailsdata = response); cosole.log('result'+ this.detailsdata) }。 所以我懷疑這是否正確。請給我這個告訴我。 – ananya

+0

你能否把{{detailsdata | json}},並檢查它是否顯示任何內容。需要檢查數據是否從JSON文件中實際讀取。 –

+0

@ananya您的控制檯將不會打印任何內容,因爲獲取數據的過程將異步運行,並且即使在從服務獲取結果之前,仍會執行代碼(console.log)。檢查我的更新後的代碼,只有在提取值後纔會記錄。 –