Angular 4 - change color dependent on value

后端 未结 2 2014
小蘑菇
小蘑菇 2021-01-04 18:05

I\'m working with Angular 4 and I have a problem with conditional style changing. I have a table and values in it. I need the values in a column to be changed depending if t

相关标签:
2条回答
  • 2021-01-04 18:42

    You could use ngClass for this. https://angular.io/api/common/NgClass

    <mat-table>
        <ng-container matColumnDef="availableBalance">
          <mat-header-cell *matHeaderCellDef>Available balance</mat-header-cell>
          <mat-cell *matCellDef="let row"
             [ngClass]="{
                'positive' : row.availableBalance > 0,
                'negative' : row.availableBalance < 0
             }"
          >{{row.availableBalance}}</mat-cell>
        </ng-container>
    </mat-table>
    

    In your CSS:

    .positive {
        background-color: green;
    }
    
    .negative {
        background-color: red;
    }
    

    This will leave 0 unstyled.

    Very simple Stackblitz example: https://stackblitz.com/edit/angular-z2hnrn

    0 讨论(0)
  • 2021-01-04 19:00

    Use ngStyle with a method as expression. Add the following method to your component:

    public getColor(balance: number): string{
       return balance > 0 ? "green" : "red";
    }
    

    And in template use it as expression:

    <mat-cell *matCellDef="let row" *ngIf="row.availableBalance > 0" [ngStyle]="{'color': getColor(row.availableBalance)}"> {{row.availableBalance}}
    </mat-cell>
    
    0 讨论(0)
提交回复
热议问题