[英]how to apply background color dynamically to dropdown in angular 8 when using *ngFor
HTML代码
<div class="form-group" style="display: flex !important;"
*ngFor="let mesureitem of sampledetails.ActualMeasurements;let i = index">
<div class="col pl-0">
<label>Actual Status({{mesureitem.Name}}) </label>
<select class="form-control" (change)="onChange($event)" [ngStyle]="{'background-color':selectedColor}"
[(ngModel)]="mesureitem.ActualStatus">
<option [ngValue]="selected" selected disabled>Select Status</option>
<option *ngFor="let color of colors" [ngValue]="color.colorvalue" class="textColor"
[ngStyle]="{'background-color':color.colorvalue}">{{color.name}}</option>
</select>
</div>
</div>
TS代码
colors = [
{
id: 3,
name: 'Replace',
colorvalue: '#E60000'
},
{
id: 1,
name: 'Good',
colorvalue: '#33CC33'
},
{
id: 2,
name: 'Monitor',
colorvalue: '#FFA500'
}
];
onChange(value) {
for (var i = 0; i < this.colors.length; i++) {
if (this.colors[i].id == value.target.selectedOptions[0].index) {
this.selectedColor = value.target.selectedOptions[0].style.backgroundColor;
}
}
}
> 1. 我有两个下拉列表,它们是从 API 动态获取的,当我自动选择一个下拉列表时,第二个下拉背景颜色也会受到影响>
问题是您将选定的值绑定到同一变量。
像这样改变ngStyle
,
[ngStyle]="{'background-color':mesureitem.ActualStatus}"
您可以删除不必要的onChange()
函数和selectedColor
变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.