如果布尔值为false,则材质图标设置为红色

时间:2019-02-05 12:58:46

标签: angular angular-material2

对于我的待办事项应用程序,我想以绿色/红色来表示上下颠簸,这取决于待办事项是否完成。在旧版应用中,我可以使用ngClass并将不同的CSS类设置为图标。

HTML:

<mat-card class="example-card" *ngFor="let todo of todoList">
    <mat-card-header>
        <div mat-card-avatar>
            <mat-icon [ngClass]="todo.completed ? '.green' : '.red' ">thumb_up</mat-icon>
        </div>
        <mat-card-title>{{todo.taskName}}</mat-card-title>
        <mat-card-subtitle>
            <mat-icon style="font-size: 15px">calendar_today</mat-icon>
            {{todo.dueDate | date: 'dd.MM.yyyy'}}</mat-card-subtitle>
    </mat-card-header>
    <mat-card-content>
        <p>
            {{todo.extraNote}}
        </p>
    </mat-card-content>
    <mat-card-actions align="center">
        <button mat-button>
            <mat-icon>done</mat-icon>
        </button>
        <button mat-button>
            <mat-icon>edit</mat-icon>
        </button>
        <button mat-button (click)="delete(todo.id)">
            <mat-icon>delete</mat-icon>
        </button>
    </mat-card-actions>
</mat-card>

CSS:

.example-card {
    max-width: 90%;
    margin-top: 10px;
    margin-left: auto;
    margin-right: auto;
}


.red {
    font-size: 30px;
    color: red
}

.green {
    font-size: 30px;
    color: green;
}

为什么在这种情况下不起作用?

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

只需使用.语法摆脱类名中的[ngClass]

更改

<mat-icon [ngClass]="todo.completed ? '.green' : '.red' ">thumb_up</mat-icon>

<mat-icon [ngClass]="todo.completed ? 'green' : 'red' ">thumb_up</mat-icon>