微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 从api调用通过服务返回到组件的数据是一个对象,似乎需要是一个Angular数组

我有数据返回给我,工作得很好

工作数据是

数据:数组(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,组件通知与我遇到问题的菜单相比有什么不同?

enter image description here

解决方法:

我认为你需要设置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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐