我有数据返回给我,工作得很好
工作数据是
数据:数组(16)
不起作用的数据是这样的
data:Menu1Items:Array(5)> 0 {….}等
我正在使用Angular 5,所以service返回这样的数据
.map((response: Response) => {
return response;
然后组件拦截它,console.log工作正常
this.arsSevice.getMenu()
.subscribe(
result => {
this.testing = result;
console.log('menu',result);
})
问题是数据,这个截图显示了问题,我只是不明白如何用对象vs数组修复它?
仅因为HTML TEMPLATE而出现错误消息
找不到’对象’类型的不同支持对象'[object Object]’. NgFor仅支持绑定到诸如Arrays之类的Iterables.
HTML模板
<li *ngFor="let item of testing">
图像显示在架构上与html模板循环,组件,服务工作调用相似的调用是BOTTOM,组件通知与我遇到问题的菜单相比有什么不同?
解决方法:
我认为你需要设置testing = result.data,然后迭代它.
this.arsSevice.getMenu()
.subscribe(
result => {
this.testing = result.data;
})
这将使您可以访问“数据”中的数组
我试图改变数据的形状,这对我有用.希望它对你有用……
var data={
menu1Items:[{key:"boo", key2:"hoo"}],
menu2Items:[{key:"boo2", key2:"hoo2"}]
}
var tempData:any[]=[];
for(var key in data){
if(data.hasOwnProperty(key)){
tempData.push(data[key]);
}
}
this.data = tempData;
}
在您的模板中:
<ul *ngFor="let menu of data ">
<li>
<ng-container *ngFor="let menuItem of menu">
{{menuItem.key}} / {{ menuItem.key2}}
</ng-container>
</li>
</ul>