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,它将每行显示三个项目。