我有一个在ngFor
中使用的iterable<div *ngFor="let item in items">{{item.name}}</div>
我还有一个方法getNumberOfSpecialItems(),它返回特殊项目的数量,比如N.
我想申请一个班级&#34;特别&#34;到ngFor的前N个div。 做这个的最好方式是什么?
答案 0 :(得分:1)
嗯,我认为应该这样做:
<div *ngFor="let item in items; let i = index" [ngClass]="{'special': i < getNumberOfSpecialItems()}">{{item.name}}</div>
其中 i - 列表中的项目索引。
可能最好将 getNumberOfSpecialItems()分配给控制器中的变量并使用此变量,因为 NgClass 是观察者,在上面的情况下每次迭代都会调用函数。
更新:Angular 5中有多种方法可以有条件地绑定类参数,您可以找到here。
答案 1 :(得分:0)
当设置类取决于NgClass
评估时,我通常更喜欢属性绑定而不是boolean
指令:
<div *ngFor="let item in items; index as i"
[class.special]="i < getNumberOfSpecialItems()">
{{item.name}}
</div>
在模板中,i
是index
指令公开的NgForOf
值
答案 2 :(得分:-1)
我使用了这种方法:
<ng-container *ngFor="let item of items; index as count">
<ngcontainer *ngIf="count<getNumberOfSpecialItems() else simple">
<div ngClass="special"> {{item.name}} </div>
</ng-container>
<ng-template #simple>
<div> {{item.name}} </div>
<ng-template>
</ng-container>`
快乐编码:)