1

我正在尝试从 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);
  }

角分量.ts

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

3 回答 3

0

You can achieve this with the help of template bindings in angular.

For Example - In your component you receive this.dataGS = [{"COUNT":27}] after getting the data from the db. Then on your html template you can display this with the help of Interpolation like

<div>{{dataGS[0].count}}</div>
于 2017-10-13T04:01:45.270 回答
0

您的响应没有属性data,它只是一个数组。所以而不是:

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

做:

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

现在你会得到你的数组。然后按照 jitender 的建议,您可以迭代您的响应:

<div><p *ngFor="let d of dataGS ">{{d}}</p></div>
于 2017-10-13T07:53:12.477 回答
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>
于 2017-10-13T03:57:15.453 回答