我试图判断*ngFor
中的项是否是容器样式的第一个或最后一个元素。有没有办法做这样的事情?
<md-expansion-panel *ngFor="let item of items" *ngClass="{ 'first' : item.isFirst }">
<content></content>
</md-expansion-panel>
感谢您提供的任何帮助!
答案 0 :(得分:32)
在ngFor
内,您可以访问多个变量:
所以:
<md-expansion-panel *ngFor="let item of items; first as isFirst"
*ngClass="{ 'first' : isFirst }">
<content></content>
</md-expansion-panel>
https://angular.io/api/common/NgForOf处的文档提供了此示例:
<li *ngFor="let user of userObservable | async as users; index as i; first as isFirst">
{{i}}/{{users.length}}. {{user}} <span *ngIf="isFirst">default</span>
</li>
答案 1 :(得分:6)
你可以这样做:
<md-expansion-panel *ngFor="let item of items; let first = first;
let last = last" *ngClass="{ 'first' : first }">
<content></content>
</md-expansion-panel>
NgFor提供了几个可以别名为局部变量的导出值:
index
将设置为每个模板的当前循环迭代
因此它从0开始。
first
将设置为一个布尔值,指示该项是否为
迭代中的第一个。
last
将设置为一个布尔值,指示该项是否为
迭代中的最后一个。
even
将设置为一个布尔值,指示此项是否具有
一个偶数指数。
odd
将设置为一个布尔值,指示此项是否具有
一个奇怪的指数。
了解更多信息:NgFor-directive