2017-10-13 67 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