如何在*ngFor中每3个元素后添加一个div

Yed*_*fir 2 html ngfor 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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

但这只是在SmallBookView中添加d​​iv而不是它们之间,我如何在组件之间添加这个div>

Exp*_*lls 8

您可以使用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>
Run Code Online (Sandbox Code Playgroud)


c-s*_*ile 6

这不应该是脚本的任务,而是CSS的任务:

app-small-book-view:nth-child(3n)::after {
    /*the clearfix thing*/
    content: ""; 
    clear: both;
    display: table;
}
Run Code Online (Sandbox Code Playgroud)

因此,您的标记将只是儿童的线性序列:

<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>
Run Code Online (Sandbox Code Playgroud)