使用ngFor - Angular 4时出错
当我执行该功能时,是否有人知道如何告诉为什么在控制台上显示此错误
正在显示数据,但仍会显示此错误
empresas = <Empresa> {};
constructor(private service: Service) { }
ngOnInit() {
this.service.getEmpresas().subscribe((res) => {
this.empresas = res
})
}
模板
<tr *ngFor="let empresa of empresas">
<td>
{{ empresa.created_at }}
</td>
<td>
{{ empresa.nome }}
</td>
<td class="text-center">
{{ empresa.protocolo }}
</td>
<td class="text-right">
<a [routerLink]="['/resultado']">Explorar resultado</a>
</td>
</tr>
HistoricoComponent.html:37 ERROR错误:无法找到'object'类型的不同支持对象'[object Object]' . NgFor仅支持绑定到诸如Arrays之类的Iterables . 在checkAndUpdateNodeInline的checkAndUpdateDirectiveInline(core.es5.js:10833)的NgForOf.webpackJsonp ... / .. / .. / common/@angular/common.es5.js.NgForOf.ngOnChanges(common.es5.js:1681) (core.es5.js:12332)在checkAndUpdateNode(core.es5.js:12271)的debugCheckAndUpdateNode(core.es5.js:13132)的debugCheckDirectivesFn(core.es5.js:13073)at Object.eval [as updateDirectives] (HistoricoComponent.html:37)位于checkAndUpdateView(core.es5.js:12238)的Object.debugUpdateDirectives [as updateDirectives](core.es5.js:13058),位于callViewAction(core.es5.js:12603)
服务
getEmpresas(): Observable<any> {
const headers = new Headers();
return this.http.get(`${MEAT_API}/empresas`,
new ResponseOptions({headers: headers}))
.map(response => response.json())
}
3 回答
这个错误的原因是你迭代不可迭代的变量 .
这就是
ngFor
失败的原因,确保empresas是Empresa
的数组,尝试安慰来自API的res
以查看它是否是Empresa
对象的任何数组 . 错误描述了自己 .当您的
getEmpresas
数据返回时,res的值为Object{}
*ngFor
指令无法迭代对象(除非您使用的是KeysPipe) . 所以要么getEmpresas()
返回一个数组或创建所说的KeysPipe .例:
用法:
getEmpresas()
的响应值是一个对象,并且*ngFor
无法迭代一个对象,这就是为什么必须将对象转换为数组的原因,将empresas = []`作为空数组去掉 .在模板中,您可以使用
*ngFor
遍历数组