我正在尝试从oracle db获取数据并显示它。我已经使用express api和node创建了一个服务,并且能够成功运行它。 我创建了角度服务来获取数据,并将其分配给角度组件,但我无法将JSON响应映射到角度变量。请检查下面的代码并帮助我在angular component.ts中需要更改的内容以及如何在html中使用该变量。
来自oracle DB的JSON数据:
[{"COUNT":27}]
角度服务:
getCount(): Promise<String[]> {
return this.http.get(this.heroesUrl)
.toPromise()
.then(response => response.json().data)
.catch(this.handleError);
}
angular component.ts
dataGS : String[];
getData(): void {
this.dataService
.getCount()
.then(dataGS => this.dataGS = dataGS);
答案 0 :(得分: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>
答案 1 :(得分:0)
你可以在角度template bindings的帮助下实现这一目标。
例如 -
在您的组件中,您从this.dataGS = [{"COUNT":27}]
获取数据后会收到db
。然后在html template
上,您可以在Interpolation之类的
<div>{{dataGS[0].count}}</div>
答案 2 :(得分:0)
您的回复没有属性data
,它只是一个数组。所以而不是:
.then(response => response.json().data)
做的:
.then(response => response.json())
现在你将得到你的阵列。然后按照jitender的建议,您可以迭代您的回复:
<div><p *ngFor="let d of dataGS ">{{d}}</p></div>