如何在ngfor中使用if语句?

时间:2019-04-03 09:38:49

标签: angular ngfor

我有一个由5个按钮组成的循环,我想禁用第二个按钮,因此我尝试在*ngIf内使用*ngFor,但对我来说无法正常工作。你能帮助我吗?谢谢!

<div *ngFor="let day of days">
  <div *ngIf="day == dayFinished ">
    <ion-button id={{day}} expand="block" size="large (click)="test(day)"ngDefaultControl [(ngModel)]="days"  disabled >DAY {{day}}</ionbutton>
  </div>
</div>

3 个答案:

答案 0 :(得分:2)

您可以尝试

如果要禁用循环中的第二个按钮,则可以设置i==1(因为索引始终从0开始)

<div *ngFor="let day of days; let i=index">
<div *ngIf="day == dayFinished ">
  <ion-button id={{day}} expand="block" size="large (click)="test(day)" ngDefaultControl [(ngModel)]="days" [disabled]="i==1" >DAY {{day}}</ionbutton>
</div>

我希望这会有用

答案 1 :(得分:1)

您可以将索引与ngFor一起使用。

这是您可以做的方式

<div *ngFor="let day of days; let i=index">
<div *ngIf="day == dayFinished ">
  <ion-button id={{day}} expand="block" size="large (click)="test(day)"ngDefaultControl [(ngModel)]="days"  [disabled]="i==1" >DAY {{day}}</ionbutton>
</div>

index始终从0开始,因此请选中i==1

答案 2 :(得分:1)

您可以在ngFor中使用函数,而不是像这样的数组

在您的html =>

<div *ngFor="let day of filterDays()">
  <ion-button id={{day}} expand="block" size="large (click)="test(day)"ngDefaultControl [(ngModel)]="days" disabled >DAY {{day}}</ionbutton>

在您的组件中=>

filterDays(){
  return days.filter(x => x.day == "dayFinished");
}