gpt4 book ai didi

css - 从 Angular Material 的下拉列表中为每个选项显示不同颜色的内容详细信息

转载 作者:行者123 更新时间:2023-11-28 19:25:17 54 4
gpt4 key购买 nike

我想在用户选择一个选项时用不同的颜色显示内容。例如在下拉列表中,元素有三个选项。如果用户在状态占位符中选择已确认,内容将以绿色显示“已确认”,当用户选择未确认时,该元素将以红色显示“未确认”字样。如果用户选择“已确认并已发货”,颜色将显示为黄色。我如何让它工作?我是 Angular 的新手。我已经尝试了很多方法,但它不起作用。

<mat-form-field>
<mat-select placeholder="Status" [formControl]="statusTypeFilter">
<mat-option value="1">Confirmed</mat-option>
<mat-option value="2">Not Confirmed</mat-option>
<mat-option value="3">Confirmed and Shipped</mat-option>
</mat-form-field>


<div class="table-container mat-elevation-z8">
<table mat-table [dataSource]="ItemConfirmationList" multiTemplateDataRows matSort matSortActive="no">
<ng-container matColumnDef="StatusName">
<th mat-header-cell *matHeaderCellDef mat-sort- header>Status</th>
<td mat-cell *matCellDef="let element">{{element.StatusName }}</td>
</ng-container>
</div>

最佳答案

我做过的几件事:

  • 我们将从下拉列表中选择的值存储在一个变量中
  • 对于我们表中的每一行,我们检查了这个变量的状态,并在匹配的情况下,我们设置适当的类

适当的html:

<mat-form-field>
<mat-label>Status</mat-label>
<mat-select [(value)]="selected">
<mat-option *ngFor="let food of foods" [value]="food.value">
{{food.viewValue}}
</mat-option>
</mat-select>
</mat-form-field>
<!-- <p>You selected: {{selected}}</p> -->
<hr/>
<table>
<thead>
<tr>
<td> Item </td>
<td> Status </td>
</tr>
</thead>
<tbody>
<ng-container *ngFor='let pickedItem of sampleItems; let idx = index'>
<tr [ngClass]="setColor(pickedItem.status, idx)">
<td> {{pickedItem.item}}</td>
<td>
<span *ngIf='pickedItem.status == 1'> Confirmed </span>
<span *ngIf='pickedItem.status == 2'> Not Confirmed </span>
<span *ngIf='pickedItem.status == 3'> Confirmed and Shipped </span>
</td>
</tr>
</ng-container>
</tbody>
</table>

适当的ts:

setColor(statusVal, idx){
let returnedClass:string ='defaultClass';
(statusVal == this.selected && statusVal ===1) ? returnedClass = 'confirmedClass' : 'defaultClass';
(statusVal == this.selected && statusVal ===2) ? returnedClass = 'notConfirmedClass' : 'defaultClass';
(statusVal == this.selected && statusVal ===3) ? returnedClass = 'shippedClass' : 'defaultClass';
return returnedClass;
}

适当的css:

.confirmedClass { color:green;}
.notConfirmedClass { color:red;}
.shippedClass { color:orange;}
.defaultClass { color:#000;}

完成working stackblitz here

关于css - 从 Angular Material 的下拉列表中为每个选项显示不同颜色的内容详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56370376/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com