如果条件匹配,则角度ngfor设置空网格

时间:2019-05-27 16:01:25

标签: html css angular twitter-bootstrap

我正在循环一个数组,它的长度可能会在三列的行中改变(在桌面视图上。

html

<div  class="row" >
  <div *ngFor="let indicator of fiveElements; let index = index"
    class="col-12 col-sm-6 col-md-6 col-lg-4 col-xl-4 pb-4 pl-3 pr-3 indicatorContainer">
    <div>{{index}}</div>
  </div>
</div>

ts

export class AppComponent  {
fiveElements = [1,2,3,4,5]

}

我希望当数组长度等于4时,第三列为空

这是一个解释的模式

empty grid

这里是demo

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题-我会这样做:

<div class="row">
    <div *ngFor="let indicator of fourElements; let index = index" class="col-12 col-sm-6 col-md-6 col-lg-4 col-xl-4 pb-4 pl-3 pr-3 indicatorContainer">
        <div *ngIf="index !== 3 && fourElements.length === 4">{{index}}</div>
        <!--- third column should get empty -->
    </div>
</div>

感谢您的澄清-现在我知道您想要什么了:) 您可以使用ngFor的惯用语法来实现此目的:

<div class="row">
        <ng-template ngFor let-indicator [ngForOf]="fourElements" let-index="index">
            <div *ngIf="index === 2 && fourElements.length === 4" class="col-12 col-sm-6 col-md-6 col-lg-4 col-xl-4 pb-4 pl-3 pr-3 indicatorContainer">
            </div>
            <div class="col-12 col-sm-6 col-md-6 col-lg-4 col-xl-4 pb-4 pl-3 pr-3 indicatorContainer">
                <div>{{index+1}}</div>
            </div>
        </ng-template>
    </div>