基于数组索引值样式的HTML元素

时间:2018-07-10 18:54:20

标签: angular

我想基于数组索引值> 4来设置html元素的样式

<div *ngFor="let e of arr ; let i = index" > 
(i > 4 ) ? <p [ngClass]="['clr']" [ngStyle]="{'background-color': 'blue'}"> {{e}} </p>  :  <p> {{e}} </p> 
</div> 

我想检查循环中的条件。但是它只是打印成字符串,没有检查条件。

2 个答案:

答案 0 :(得分:3)

一种解决方法是使用*ngIf

<div *ngFor="let e of arr ; let i = index">
    <p *ngIf="i > 4" [ngClass]="['clr']" [ngStyle]="{'background-color': 'blue'}"> {{e}} </p>
    <p *ngIf="i <= 4"> {{e}} </p> 
</div> 

另一种方法是使用ngClass

使用条件类
<div *ngFor="let e of arr ; let i = index">
    <p [ngClass]="{'clr-blue' : i > 4}"> {{e}} </p>
</div> 

答案 1 :(得分:1)

最不冗长的方法可能是简单地将条件放在ngClass或ngStyle语句中。

[ngClass]=" i > 4 ? 'whateverClass' : 'whateverOtherClass'"

[ngStyle]="{'background-color' : ((i > 4) ? 'blue' : 'red') }" 

或这些的任何变化