【问题标题】:Angular Flex-layout with ngFor, X elements per row带有 ngFor 的 Angular Flex 布局,每行 X 个元素
【发布时间】:2018-12-23 18:58:13
【问题描述】:

我尝试关注这个帖子Angular flex-layout with ngFor 做我想做的事,但我做不到。

我有这个代码:

<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 和我的代码。

【问题讨论】:

  • 第一个答案中已经很好地解释了。您遇到的错误/问题是什么?
  • 如果我这样做:
    Room {{room.label}} ......
    就是不行.我只有一条线与所有房间。我想我做错了
  • Stackblitz,请
  • 我在这里看不到 flex 布局......
  • 我用 stackblitz 链接编辑

标签: angular angular-flex-layout


【解决方案1】:

您的代码(源自其他 SO 问题)不起作用,因为根据 changelog of Angular Flex-layoutfxLayoutWrap 已被弃用。相反,您应该直接将其设置为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,它将每行显示三个项目。

【讨论】:

  • 他想显示一行中的每 3 个房间。你的结果不是那样的!!!
  • @Arash 是,如果屏幕大于媒体查询md
  • 非常感谢,正是我想要的!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
  • 2018-02-14
相关资源
最近更新 更多