Angular 使用 ngFor 的 Flex 布局,每行 X 个元素
Angular Flex-layout with ngFor, X elements per row
我试着按照这个 post 做我想做的事,但我做不到。
我有这个代码:
<div *ngFor="let room of listRoom;">
<div class="room">
Room {{room.label}}
<div *ngFor="let bed of room.beds;">
<div class="bed">
Bed #{{bed.label}}
<button mat-raised-button color="accent" (click)="assignThisBed(bed)">
Assign this bed
</button>
</div>
</div>
</div>
</div>
我的 listRooms
通常包含 10-15 个元素
我想要连续 3 个房间然后隔断线,3 个房间,...
有人可以帮助我吗?谢谢..
这是我的代码 StackBlitz。
您的代码(源自其他 SO 问题)无法正常工作,因为 fxLayoutWrap
根据 changelog of Angular Flex-layout 已弃用。相反,您应该将其直接设置为 fxLayout
属性才能生效:
fxLayout="row wrap" fxLayout.xs="column wrap"
是结果。我还向 regularDistribution
变量添加了一个百分号:100 / 3 + '%'
.
<div fxLayout="row wrap" fxLayout.xs="column wrap">
<div fxFlex.gt-xs="50%" [fxFlex.gt-md]="regularDistribution" *ngFor="let room of listRooms;" class="room">
Room {{room|json}}
</div>
</div>
Here's an updated StackBlitz 可以解决您的问题。如果视口大于 fxFlex.gt-md
,它将每行显示三个项目。
我试着按照这个 post
我有这个代码:
<div *ngFor="let room of listRoom;">
<div class="room">
Room {{room.label}}
<div *ngFor="let bed of room.beds;">
<div class="bed">
Bed #{{bed.label}}
<button mat-raised-button color="accent" (click)="assignThisBed(bed)">
Assign this bed
</button>
</div>
</div>
</div>
</div>
我的 listRooms
通常包含 10-15 个元素
我想要连续 3 个房间然后隔断线,3 个房间,...
有人可以帮助我吗?谢谢..
这是我的代码 StackBlitz。
您的代码(源自其他 SO 问题)无法正常工作,因为 fxLayoutWrap
根据 changelog of Angular Flex-layout 已弃用。相反,您应该将其直接设置为 fxLayout
属性才能生效:
fxLayout="row wrap" fxLayout.xs="column wrap"
是结果。我还向 regularDistribution
变量添加了一个百分号:100 / 3 + '%'
.
<div fxLayout="row wrap" fxLayout.xs="column wrap">
<div fxFlex.gt-xs="50%" [fxFlex.gt-md]="regularDistribution" *ngFor="let room of listRooms;" class="room">
Room {{room|json}}
</div>
</div>
Here's an updated StackBlitz 可以解决您的问题。如果视口大于 fxFlex.gt-md
,它将每行显示三个项目。