2017-10-13 77 views
1

我試圖從Oracle數據庫中獲取數據並顯示它。我已經使用express API和節點創建了一個服務,並且能夠成功運行它。 我已經創建了角度服務來獲取數據,並將其分配給角度組件,但我無法將JSON響應映射到角度變量。請檢查下面的代碼,並幫助我在angular component.ts中需要更改的內容,以及如何在html中使用該變量。將Oracle的JSON響應轉換爲角度2變量

JSON從Oracle DB數據:

[{"COUNT":27}] 

角服務:

getCount(): Promise<String[]> { 
    return this.http.get(this.heroesUrl) 
       .toPromise() 
       .then(response => response.json().data) 
       .catch(this.handleError); 
    } 

角component.ts

dataGS : String[]; 
getData(): void { 
    this.dataService 
     .getCount() 
     .then(dataGS => this.dataGS = dataGS); 

回答

0

您的回覆顯示,這並不有一個屬性data,它只是一個數組。因此,而不是:

.then(response => response.json().data) 

做:

.then(response => response.json()) 

現在你會得到你的陣列。然後提議jitender您可以遍歷你的迴應:

<div><p *ngFor="let d of dataGS ">{{d}}</p></div> 
0

什麼

getCount(): Promise<String[]> { 
    return this.http.get(this.heroesUrl) 
       .toPromise() 
       .then(response => { 
        response.json().map(function(item) { 
          return item['COUNT']; 
         }) 
         }) 
       .catch(this.handleError); 
    } 

在你的HTML

<div><p *ngFor="let d of dataGS ">{{d}}</p></div> 
+0

我沒有得到任何錯誤,但我應該在HTML模板中使用在這種情況下 – user2662882

+0

檢查更新ANS – jitender

+0

不過我沒有收到,我懷疑這行響應綁定.json()。map(function(item){ return item ['COUNT']; 正在從響應中獲取數據 – user2662882

0

您可以用template bindings的角度幫助實現這一目標。

例如 - 在從db獲取數據後,您的組件中收到this.dataGS = [{"COUNT":27}]。然後在你的html template,你可以用Interpolation幫助像

<div>{{dataGS[0].count}}</div> 
+0

在html模板上使用此錯誤時出現以下錯誤 heroes.component.html:3錯誤TypeError:無法讀取Object.eval中未定義的 的屬性'0' [按updateRenderer](heroes.component.html:3) 在Object.debugUpdateRenderer [按updateRenderer](services.ts:477) 在checkAndUpdateView(view.ts:413) 在callViewAction(view.ts:767) 在execComponentViewsAction(view.ts:700) 在checkAndUpdateView(view.ts:413) 在callViewAction(view.ts:767) 在execEmbeddedViewsAction(view.ts:726) 在checkAndUpdateView(view.ts:410) – user2662882

+0

首先初始化這個。dataGS = []'作爲ngOnInit或構造函數中的空數組 –

+0

編譯ts文件時出現以下錯誤: node_modules/rxjs/Subject.d.ts(16,22):error TS2415:Class'Subject '錯誤地擴展了基類'Observable '。 屬性'lift'的類型不兼容。 類型'(operator:Operator )=> Observable '不可分配給類型'(operator:Operator )=> Observable '。 類型'Observable '不可分配爲鍵入'Observable '。 類型'T'不可分配給'R'類型。 – user2662882