angular - 使用 ngfor 和 ngif 制作网格
问题描述
我正在尝试制作一个网格,其中 3 张卡片在一行中显示,然后添加新行,并显示接下来的 3 张卡片。
这是我目前的代码:
<div class="container">
<div *ngIf="recipes$ | async as recipes; else loadingOrError">
<div class="row">
<div class="col" *ngFor="let recipe of recipes; let i = index">
<app-recipe [recipe]="recipe"></app-recipe>
<div *ngIf="i % 3 === 0">
<div class="row"></div>
</div>
</div>
</div>
<ng-template #loadingOrError></ng-template>
</div>
</div>
这不起作用。有没有更简单的方法来完成这项任务?我正在使用mdbootstrap框架。
解决方案
我知道您正在使用 mdbootstrap,但这是 CSS 网格的理想方案。如果您无法让 mdbootstrap 为您工作,请考虑以下替代方法:
您的模板:
<div class="container" *ngIf="recipes$ | async as recipes; else loadingOrError">
<div class="card" *ngFor="let recipe of recipes; let i = index">
<app-recipe [recipe]="recipe"></app-recipe>
<div *ngIf="i % 3 === 0">
<div class="row"></div>
</div>
</div>
</div>
<ng-template #loadingOrError></ng-template>
你的 CSS:
.container {
display: grid;
gap: 1em;
grid-template-columns: 1fr 1fr 1fr;
}
如果您想要一个交互式示例,请查看此codepen。硬编码div
元素模拟*ngFor
指令生成的元素。
推荐阅读
- python - 如何在没有任何方程的情况下计算python中不规则物体的体积?
- paw-app - OAuth2 没有获取访问令牌
- python - Python pandas - 为另一列中的每个不同值显示列中记录数最多的值
- jsp - 为什么我在 IntelliJ IDEA Ultimate 2020.2 的 JSP&servlet 中发现 404 错误?
- javascript - Javascript多次拖放文件 - 将新文件添加到以前的文件而不是替换
- python - 如何在定义函数时指定使用 pandas .replace() 而不是 str.replace()?
- reactjs - 在 typecipt 中使用 Stateful React 类
- python - 读取用户 ID 以回复消息时出现问题。带有 Aiogram 的 Telegram 机器人
- java - 从 String 和 Map 构建 JSON 字符串
GSon 的领域? - ios - 您如何让位置捕获器在覆盖转场之前运行?