angular - *ngFor - 循环迭代没有发生。仅显示对象的一个元素而不是全部(在 Angular 12 中)
问题描述
我的对象数组没有在 UI 中循环。我只能得到一个元素。我究竟做错了什么?请帮助纠正这个问题。
我的component.html文件如下:
<div class="card" *ngFor="let regionList of regionLists; let i = index" [attr.data-index]="i">
<div class="card-body">
{{ regionList.output.list[i].region }}
</div>
</div>
我的 componnent.ts - 我为演示目的提供了两个对象,我需要在其中显示区域,即输出应该有 2 张卡,而我只得到一张
import { query } from '@angular/animations';
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'apiDemoApp';
query:string;
regionLists:any[];
constructor(){
this.query="ramlal";
this.regionLists=[{
"transactionId":"abc",
"output":{
"list":[
{
"region":"Africa",
"apis":[
{
"name":"Address Validation",
"status":"Operational",
"time":"98%",
"sec":"160ms"
},
{
"name":"Address Validation",
"status":"Operational",
"time":"98%",
"sec":"160ms"
}, {
"name":"Address Validation",
"status":"Operational",
"time":"98%",
"sec":"160ms"
},
{
"apiName":"Locations",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Pickup",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Track",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Rate",
"rateSubApis":[
{
"apiName":"Rate Express",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Rate Freight",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Rate Ground",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Rate SmartPost",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
}
]
},
{
"apiName":"Ship",
"shipSubApis":[
{
"apiName":"Ship Express",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Ship Freight",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Ship Ground",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Ship SmartPost",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
}
]
}
]
},
{
"region":"Americas and Caribbean",
"apis":[
{
"apiName":"Address Validation",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Locations",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Pickup",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Track",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Rate",
"rateSubApis":[
{
"apiName":"Rate Express",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Rate Freight",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Rate Ground",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Rate SmartPost",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
}
]
},
{
"apiName":"Ship",
"shipSubApis":[
{
"apiName":"Ship Express",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Ship Freight",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Ship Ground",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
},
{
"apiName":"Ship SmartPost",
"status":"Operational",
"upTime":"98%",
"avgResponseTime":"160ms"
}
]
}
]
},
],
"userRegion":"Indian Sub-Continent",
"Country":"India"
}
}]
}
}
输出:
预期输出:根据数组中的对象两张卡
解决方案
您应该有列表的第二个循环。
<div class="card" *ngFor="let regionList of regionLists; let i = index" [attr.data-index]="i">
<div class="card-body">
<ng-container *ngFor="let listItem of regionList.output.list">
{{ listItem.region }}
</ng-container>
</div>
</div>
推荐阅读
- python - 给定一个项目,返回列表中的下一个项目
- sql - 查询以获取答案最多的问题
- kubernetes - Openshift Kubernetes 应用程序无法在 Jetty 服务器上启动:java.net.URISyntaxException:索引 7 处的预期权限
- php - 为什么我的更新数据没有包含在 laravel 中?
- c - 如何使汇率为任意数字。例如:率 = n
- twitter-bootstrap - Bootstrap 5 我的 col-md-5 类不起作用
- excel - 为什么导入excel时,我添加的数据没有保存到使用laravel的数据库中
- amazon-web-services - S3 bucket - Terraform: Plan shows inexistent changes, on default values
- mysql - MySQL:记录在指定时间范围内执行的 DROP & DELETE 语句的通用日志
- r - 如何计算R中回归的标准误差