twitter-bootstrap - 为单个 `ngFor` 迭代创建两个元素?

标签 twitter-bootstrap angular angular2-template

我正在循环处理一组模型,并希望为每个模型显示一个元素。但是,出于 CSS 原因,我必须在到达第四个模型时添加另一个元素(我需要添加一个 Bootstrap clearfix 元素以使布局看起来不错)。

<div class="jumbotron">
    <ol class="row">
        <li *ngFor="#card of deck; #i = index" class="col-xs-3">
            <h3>{{ card.name }}</h3>
        </li>
    </ol>
</div>

我怎么说如果 (i + 1) % 4 === 0 , 然后添加这个 li加上另一个 <li class="clearfix"></li>

最佳答案

这可以通过 <ng-container> 来完成辅助元素

  <div class="jumbotron">
    <ol class="row">
        <ng-container *ngFor="let card of deck" let-i="index"> 
          <li class="col-xs-3">
            <h3>{{ card.name }}</h3>
          </li>
          <li *ngIf="(i + 1) % 4 === 0" class="clearfix"></li>
        </ng-container>
    </ol>
  </div>

另一种方法(在 <ng-container> 可用之前使用)

这可以用长 ngFor 来完成带有显式 <template> 的形式标记为

  <div class="jumbotron">
    <ol class="row">
        <template ngFor let-card [ngForOf]="deck" let-i="index"> 
          <li class="col-xs-3">
            <h3>{{ card.name }}</h3>
          </li>
          <li *ngIf="(i + 1) % 4 === 0" class="clearfix"></li>
        </template>
    </ol>
  </div>

Plunker example

另见 https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html

关于twitter-bootstrap - 为单个 `ngFor` 迭代创建两个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36376006/

相关文章:

javascript - 单击按钮在 ngfor 中加载多个组件

Angular 4 模板引用变量

Angular 2 : Multiple layout files using interpolation

javascript - 控制 Bootstrap-Lightbox 画廊中的图像高度

css - Bootstrap img 高度 : auto property overrides explicit height

javascript - 单击时更改 Bootstrap 图标位置

css - 如何防止垂直对齐的内容在 Bootstrap 4 中与导航栏重叠?

angular - 如何更改 VMware Clarity 中的默认字体?

angular - 在 Angular2 中动态更新 [checked]

javascript - 从服务获取数据后如何刷新数据表内联编辑器?