javascript - 如何在 Angular Ionic 的嵌套对象数组中显示数据?
问题描述
在我的 Ionic Angular 应用程序中,我试图显示下面的数组,其中包含几个锻炼练习。每个练习包括几组:
exercises = [
{
name: 'Leg Extension Machine',
sets: [
{ setNo: 1, reps: 8, weight: 40 },
{ setNo: 2, reps: 10, weight: 36 },
{ setNo: 3, reps: 15, weight: 33 },
],
},
{
name: 'Leg Press Machine',
sets: [
{ setNo: 1, reps: 8, weight: 80 },
{ setNo: 2, reps: 10, weight: 72 },
{ setNo: 3, reps: 15, weight: 65 },
],
},
{
name: 'Rear Leg Elevated Split Squat (Bench)',
sets: [
{ setNo: 1, reps: 8, weight: 8 },
{ setNo: 2, reps: 10, weight: 8 },
{ setNo: 3, reps: 15, weight: 8 },
],
},
];
我可以用来ngFor
显示练习名称,如下所示:
<ion-card *ngFor="let exercise of exercises">
<ion-card-header>
<ion-card-title>
{{exercise.name}}
</ion-card-title>
</ion-card-header>
</ion-card>
它显示如下:
现在,我试图set
在每个练习名称下显示每个。
我已经设法使用下面的嵌套循环将与每个集合相关的数据记录到控制台,但我不知道如何将这些数据获取到前端:
ngOnInit() {
for (let i = 0; i < this.exercises.length; i++) {
this.exercises[i].sets;
console.log('---', this.exercises[i].name);
for (let x = 0; x < this.exercises[i].sets.length; x++) {
console.log('---', this.exercises[i].sets[x].weight);
}
}
}
解决方案
这应该有效:
<ion-card *ngFor="let exercise of exercises">
<ion-card-header>
<ion-card-title>
{{exercise.name}}
</ion-card-title>
</ion-card-header>
<ion-card-content>
<div *ngFor="let set of exercise.sets">
<ul>
<li><strong>Nr.</strong> {{set.setNo}}</li>
<li><strong>Reps</strong> {{set.reps}}</li>
<li><strong>Weight</strong> {{set.weight}}</li>
</ul>
</div>
</ion-card-content>
</ion-card>
您已经分配了练习的当前对象,exercise
因此您可以从该变量中检索集合并迭代这些集合。
推荐阅读
- animation - 使用 webcola js 在 D3 中禁用初始动画
- wicket - NavbarDropDownButton 显示空白链接
- python-3.x - 在有条件的熊猫中除以前一行
- oracle - 单行有效日期的日期 - 想要在多行中选择
- ruby-on-rails - 在 Rails 验证中浮动的最大数量是多少?
- vba - 有没有办法用 VBA 以只读方式打开具有写入密码的 PowerPoint 文件,与使用 Word 文档的方式相同?
- mongodb - 通过 PrestoDB 从 MongoDB ObjectId 获取时间戳
- bash - MacOS bash 脚本不支持双引号
- python - 是否可以在python中逐部分分解error.path消息?
- javascript - 我想将对象推送到 Vue.js 中的对象数组中