【发布时间】:2019-10-27 20:45:53
【问题描述】:
我正在使用 Angular 8,并且正在查询端点以获取对象。当我通过高级 REST 客户端调用它时,我得到以下返回的 JSON:
获取:http://localhost:8090/curso_conductor/
返回:
{
"dato": [{
"ID_CURSO_CONDUCTOR": 1,
"F_INICIO": "2019-09-19T05:00:00.000+0000",
"F_FIN": "2019-12-20T05:00:00.000+0000",
"ESTADO": "1",
"CARNET_C": "l584f",
"F_CADUCIDAD": "2022-06-20T05:00:00.000+0000",
"F_EMISION": "2017-06-20T05:00:00.000+0000",
"ID_CURSO": 1,
"ID_PERSONA": 3
},
{
"ID_CURSO_CONDUCTOR": 2,
"F_INICIO": "2019-08-20T05:00:00.000+0000",
"F_FIN": "2019-12-20T05:00:00.000+0000",
"ESTADO": "1",
"CARNET_C": "8574h",
"F_CADUCIDAD": "2023-04-05T05:00:00.000+0000",
"F_EMISION": "2017-04-08T05:00:00.000+0000",
"ID_CURSO": 1,
"ID_PERSONA": 5
},
{
"ID_CURSO_CONDUCTOR": 3,
"F_INICIO": "2019-10-09T05:00:00.000+0000",
"F_FIN": "2019-12-10T05:00:00.000+0000",
"ESTADO": "1",
"CARNET_C": "2685f",
"F_CADUCIDAD": "2022-08-10T05:00:00.000+0000",
"F_EMISION": "2017-08-09T05:00:00.000+0000",
"ID_CURSO": 1,
"ID_PERSONA": 6
}
],
}
在 Angular 8 中,我有一个服务,我想在其中对将返回上述 JSON 的端点进行 http 调用。
getCursoConductor(): Observable<Curso_Conductor[]>{
return this.http.get<Curso_Conductor[]>(this.curso_conductores).pipe();
}
如您所见,需要将结果放入Curso_Conductor 对象中。
我的模型是这样的:
export class Curso_Conductor {
dato: Dato[];
}
export class Dato {
ID_CURSO_CONDUCTOR: number;
F_INICIO: string;
F_FIN: string;
ESTADO: string;
CARNET_C: string;
F_CADUCIDAD: string;
F_EMISION: string;
ID_CURSO: number;
ID_PERSONA: number;
}
我的问题是如何将数据放入Curso_conductorComponent.html?
这是我的component.html:
<table class="table table-hover">
<thead>
<tr>
<th>ID</th>
<th>FECHA INICIO</th>
<th>FECHA FIN</th>
<th>ESTADO</th>
<th>Nro CARNET</th>
<th>FECHA CADUCIDAD</th>
<th>FECHA EMISION</th>
<th>IDCURSO</th>
<th>IDPERSONA</th>
<th colspan="2">OPCION</th>
</tr>
</thead>
<tbody>
<tr *ngIf="curso_conductoresObservable | async as curso_conductores else empty">
<tr *ngFor="let curso_conductor of curso_conductores">
<td>{{curso_conductor.id_curso_conductor}}</td>
<td>{{curso_conductor.f_inicio}}</td>
<td>{{curso_conductor.f_fin}}</td>
<td>{{curso_conductor.estado}}</td>
<td>{{curso_conductor.carnet_c}}</td>
<td>{{curso_conductor.f_caducidad}}</td>
<td>{{curso_conductor.f_emision}}</td>
<td>{{curso_conductor.id_curso}}</td>
<td>{{curso_conductor.id_persona}}</td>
<td><button class="btn btn-warning" (click)="Editar(curso_conductor)">Editar</button></td>
<td><button class="btn btn-danger" (click)="Eliminar(curso_conductor)">Eliminar</button></td>
</tr>
</tbody>
</table>
还有我的component.ts:
curso_conductores: Curso_Conductor[];
constructor(private service: ServiceService, private router: Router) { }
@Input() nombre = '';
ngOnInit() {
this.service.getCursoConductor()
.subscribe(data => {this.curso_conductores=data });
}
我收到此错误:
找不到不同的支持对象 “对象”类型的“[对象对象]”。 NgFor 只支持绑定到 数组等可迭代对象。
【问题讨论】:
-
这真的是您展示的全部回复吗?您的代码对我来说看起来不错,但响应对象有点可疑。为什么在关闭数组的最后一个括号之后有
,}?让我怀疑你得到的是一个对象而不是一个数组。你的英语也很好,没有人会这么想。但是,如果您愿意,可以在 https://es.stackoverflow.com/ 找到一个完全讲西班牙语的 StackOverflow。 -
是的,我正在从后端获取一个对象,让我解释一下。后端(java btw)正在使用一个过程,该过程从数据库中返回一个带有
select * from curso_conductor的游标。通常我以前在没有光标的情况下做所有这些事情,只是select * from(更简单的前端),但现在我正在尝试这个并且知道如何读取嵌套的json。我是一名软件工程师学生,并且是 Angular 的新手。谢谢
标签: json angular httpclient