【发布时间】:2018-05-03 13:57:09
【问题描述】:
我目前的设置是这样的。
ngOnInIt为我的dashboard.component.ts运行databaseService调用以订阅结果。database.service.ts运行http POST以获取数据并填充值IssuerGroup。我想以 HTML 格式显示我的数据库给我的
JSON的结果。
代码如下:
dashboard.component.ts
import { IssuerGroup } from './../database.service';
import { Component, OnInit } from '@angular/core';
import { RouterLink } from '@angular/router';
import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';
import { Observable } from 'rxjs/Observable';
import { HttpClient } from '@angular/common/http';
import { element } from 'protractor';
import { ActivatedRoute } from '@angular/router';
import { DatabaseService } from '../database.service';
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.css']
})
export class DashboardComponent implements OnInit {
issuerGroups: IssuerGroup[];
constructor(
private databaseService: DatabaseService,
private route: ActivatedRoute
) {}
ngOnInit() {
const id = this.route.snapshot.paramMap.get('id');
this.databaseService.getGroup(id)
.subscribe(issuerGroups => this.issuerGroups = issuerGroups);
}
}
database.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { map } from 'rxjs/operators';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/toPromise';
export class IssuerGroup {
Issuer_Id: number;
Issuer_Name: string;
Issuer_Group_Name: string;
}
@Injectable()
export class TeradataService {
constructor(private _http: HttpClient) {}
getGroup(id): Observable<IssuerGroup[]> {
const url = 'http://localhost:3000/ig';
const data = ({
issuerid: id
});
return this._http.post(url, data)
.pipe(
map((res) => {
console.log(res);
return <IssuerGroup[]> res;
})
);
}
}
dashboard.component.html
<p> Display the Issuer Name here: {{ issuerGroups.Issuer_Name }} </p>
<!-- ERROR TypeError: Cannot read property 'Issuer_Name' of undefined -->
<p> Display the Issuer Name here: {{ issuerGroup.Issuer_Name }} </p>
<!-- ERROR TypeError: Cannot read property 'Issuer_Name' of undefined -->
<p> Display the Issuer Name here: {{ issuerGroups[0].Issuer_Name }} </p>
<!-- this last result produces the following error but the data actually displays on screen correctly -->
<!-- ERROR TypeError: Cannot read property '0' of undefined -->
在我在 HTML 页面中的最后一个示例中,数据显示但仍然收到错误。
目标:在我的 HTML 页面中显示我从数据库中返回的 JSON 的结果,并且没有错误。任何帮助将不胜感激。
【问题讨论】:
标签: javascript html arrays json angular