我收到返回的数据,效果很好
工作数据是
data: Array(16)
不起作用的数据是这样的
data: Menu1Items: Array(5) > 0 { .... } etc
我正在使用 Angular 5,因此服务返回这样的数据
.map((response: Response) => {
return response;
然后组件拦截它并且 console.log 工作正常
this.arsSevice.getMenu()
.subscribe(
result => {
this.testing = result;
console.log('menu',result);
})
问题出在数据上,这个屏幕截图显示了问题,我只是不明白如何使用对象与数组来修复它?
仅因 HTML 模板而出现错误消息
Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.
HTML模板
<li *ngFor="let item of testing">
该图显示了一个与 html 模板循环、组件、服务架构类似的调用,工作调用位于底部,component
请注意与所谓的相比的不同之处menu
我遇到麻烦了吗?
我认为你需要设置testing = result.data,并迭代它。
this.arsSevice.getMenu()
.subscribe(
result => {
this.testing = result.data;
})
这将使您可以访问“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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)