既然你知道你的数组长度和图像数量,那么有两种方法可以做到这一点。 但首先两件事情:
- 您正在创建的每张图片幻灯片,使用
*ngFor
上ion-slide
将创建数组中的每一项新的幻灯片。
- 我不知道您使用的是什么Ionic版本,但在3.x上
ion-col
的width-x
属性已弃用,请使用col-x
(如Bootstrap)。
修改,所以你可以有四个项目
animateItems1: any[] = [{item: item}, {item: item}, {item: item}, {item: item}];
animateItems2: any[] = [{item: item}, {item: item}, {item: item}, {item: item}];
animateItems3: any[] = [{item: item}, {item: item}, {item: item}, {item: item}];
3个阵列和每一个阵列
<ion-slides>
<ion-slide>
<ion-row>
<ion-col *ngFor=" let item of animateItems1; let i=index " col-3 style="padding: 3px;" (click)="openCategory(item.name)">
<ion-card style="margin: 0px 0px 0px 0px; width: calc(100%);">
<img src="{{item.image}}" />
<p style="margin-top: -24px;color: #fff; text-align: center; text-shadow: 1px 2px 2px #000;">
{{item.name}}
</p>
</ion-card>
</ion-col>
</ion-row>
</ion-slide>
<ion-slide>
<!-- The same code as above, but for animateItems2, and then another for animateItems3 -->
</ion-slide>
</ion-slides>
是的,我知道你要创建幻灯片代码每张幻灯片,但这是一种方式。
您可以嵌套*ngFor
,但话又说回来,你需要修改你的阵列
animateItems: any[] = [{
0: [{item: item}, {item: item}, {item: item}],
1: [{item: item}, {item: item}, {item: item}],
2: [{item: item}, {item: item}, {item: item}]
}]
而且你的HTML
<ion-slide *ngFor="let item of animateItems: let i = index">
<ion-row>
<ion-col*ngFor="let lowerItem of animateItems[i]; let ind = index col-3 style="padding: 3px;" (click)="openCategory(lowerItem.name)">
<ion-card style="margin: 0px 0px 0px 0px; width: calc(100%);">
<img src="{{lowerItem.image}}" />
<p style="margin-top: -24px;color: #fff; text-align: center; text-shadow: 1px 2px 2px #000;">
{{lowerItem.name}}
</p>
</ion-card>
</ion-col>
</ion-row>
</ion-slide>
,因为我不知道外观的页面我不能帮助CSS和cols部门和一切。但希望这有助于:)