Javascript 从api调用通过服务返回到组件的数据是一个对象,并且似乎需要是一个数组
我有返回给我的数据,工作正常 工作数据是Javascript 从api调用通过服务返回到组件的数据是一个对象,并且似乎需要是一个数组,javascript,arrays,json,angular,observable,Javascript,Arrays,Json,Angular,Observable,我有返回给我的数据,工作正常 工作数据是 数据:数组(16) 不起作用的数据是这样的 .map((response: Response) => { return response; data:Menu1Items:Array(5)>0{..}等 我使用的是Angular 5,所以服务返回的数据如下 .map((response: Response) => { return response; 然后组件拦截它,console.
数据:数组(16)
不起作用的数据是这样的
.map((response: Response) => {
return response;
data:Menu1Items:Array(5)>0{..}等
我使用的是Angular 5,所以服务返回的数据如下
.map((response: Response) => {
return response;
然后组件拦截它,console.log工作正常
this.arsSevice.getMenu()
.subscribe(
result => {
this.testing = result;
console.log('menu',result);
})
问题在于数据,这个屏幕截图显示了问题所在,我只是不知道如何用object vs array解决它
仅因HTML模板而显示错误消息
找不到类型为“object”的不同支持对象“[object object]”。NgFor仅支持绑定到数组之类的可重用项。
HTML模板
<li *ngFor="let item of testing">
图中显示了一个在体系结构上与html模板循环、组件、服务类似的调用工作调用位于底部,component
注意到与我遇到问题的名为menu
的调用不同吗
我认为您需要设置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>
-
{{menuItem.key}/{{menuItem.key2}
使用HttpClient angular自动将响应解析为对象。它不知道这是什么类型的对象,所以它只是一个不知道其数组属性的普通对象
这是因为当HttpClient将JSON响应解析为一个对象时,它不知道该对象是什么形状
但是你可以告诉angular返回的对象是什么类型的,这样它就可以被正确地投射。例如,如果你得到一个字符串数组,你可以这样做
return this.http.get<string[]>(apiUrl)
返回此.http.get(apirl)
你可以阅读更多,他们描述了一个类似的问题,只是结构有点不同 不,是我干的,运气不好。数据不同,请注意屏幕截图。正在工作的服务/组件在一个数组中有数据,但是看看我在菜单中得到的数据……GetMenu是与“工作数组”不同的调用,还是相同的调用?为什么一个状态为“失败”,另一个状态为成功?菜单项也是对象数组,因此您还需要遍历每个菜单数组。你试过两个循环吗?@Farasi78在谷歌搜索时绊倒在这里。我和那个问这个问题的人有一个相似的问题。我有一个需要迭代的对象数组。我现在不在我的代码前面,我需要带着我的代码回到我的电脑,然后发布一个我猜是的问题。想知道如何在每个数组上真正循环的角度代码的示例吗?你能举个例子吗?这对我很有效。我做了一些像
客户:任何
then customers=result.data[“customers”]您的数据如何可能更改?你必须在某个地方修改它,请提供重现该问题所需的所有代码,或者更好的是,创建一个演示该问题的示例。他似乎(我想)展示了一个1的示例(我假设是另一个调用),一个不起作用的示例-当然解释得不是很好,但我无意中发现了这一点,选择的答案确实帮助了我。