如何在 *ngFor 中每 3 个元素后添加一个 div
How to add a div after every 3 elements in *ngFor
我正在尝试建立 uild 一个 angular 项目。
在我的项目中,我想显示一个书籍列表,我有一个用于单本书的 SmallBookView 组件,我想使用 ngFor 来显示许多其他书籍。/
但是在每 3 本书之后我需要添加一个 div 来分隔这些书,
最后应该是这样的
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<div class="clearfix"> </div>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<div class="clearfix"> </div>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<div class="clearfix"> </div>
div 将 ui 中的每一行书分开。
我正在尝试像这样使用 ngFor
<app-small-book-view *ngFor="let i of [1,2,3,4,5,6,7]; let _i = index">
<div class="clearfix" *ngIf="(_i % 3) == 0"></div>
</app-small-book-view>
但这只是在 SmallBookView 内部而不是在它们之间添加 div,我如何在组件之间添加这个 div>
您可以使用 ng-container
对多个组件进行分组,而无需容器渲染。
<ng-container *ngFor="let i of [1,2,3,4,5,6,7]; let _i = index">
<app-small-book-view></app-small-book-view>
<div class="clearfix" *ngIf="(_i % 3) == 0"></div>
</ng-container>
这不应该是脚本的任务,而是 CSS:
app-small-book-view:nth-child(3n)::after {
/*the clearfix thing*/
content: "";
clear: both;
display: table;
}
因此您的标记将只是子项的线性序列:
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
我正在尝试建立 uild 一个 angular 项目。 在我的项目中,我想显示一个书籍列表,我有一个用于单本书的 SmallBookView 组件,我想使用 ngFor 来显示许多其他书籍。/ 但是在每 3 本书之后我需要添加一个 div 来分隔这些书, 最后应该是这样的
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<div class="clearfix"> </div>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<div class="clearfix"> </div>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<div class="clearfix"> </div>
div 将 ui 中的每一行书分开。 我正在尝试像这样使用 ngFor
<app-small-book-view *ngFor="let i of [1,2,3,4,5,6,7]; let _i = index">
<div class="clearfix" *ngIf="(_i % 3) == 0"></div>
</app-small-book-view>
但这只是在 SmallBookView 内部而不是在它们之间添加 div,我如何在组件之间添加这个 div>
您可以使用 ng-container
对多个组件进行分组,而无需容器渲染。
<ng-container *ngFor="let i of [1,2,3,4,5,6,7]; let _i = index">
<app-small-book-view></app-small-book-view>
<div class="clearfix" *ngIf="(_i % 3) == 0"></div>
</ng-container>
这不应该是脚本的任务,而是 CSS:
app-small-book-view:nth-child(3n)::after {
/*the clearfix thing*/
content: "";
clear: both;
display: table;
}
因此您的标记将只是子项的线性序列:
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>
<app-small-book-view></app-small-book-view>