如何使用 ngStyle 在 Angular 中使用 IF THEN ELSE?
How can you have an IF THEN ELSE in Angular with ngStyle?
我正在尝试根据 STATUS 值在 table 突出显示行。我可以通过以下方式让它使用黄色或无颜色:
[ngStyle]="{'background-color': cnresult.STATUS === 1 ? 'yellow' : ''}"
如果 STATUS === 2 变为红色,我该如何添加另一个选项?
您可以链接多个三元运算
[ngStyle]="{'background-color': cnresult.STATUS === 1 ? 'yellow' : cnresult.STATUS === 2 ? 'red' : ''}"
另一个可能更易于维护的选项是有条件地应用 class(es),如下所示:
<div [class.yellow]="cnresult.STATUS === 1"
[class.red]="cnresult.STATUS === 2"
></div>
// This belongs in your .css file
.yellow {
background-color: yellow;
}
.red {
background-color: red;
}
可以在ts文件中创建地图对象
colorMap = {
'1': 'yellow',
'2': 'red',
}
<div [ngStyle]="{'background-color': colorMap[cnresult.STATUS] || ''}"></div>
通过这个你可以添加多个条件
你也可以这样做,
[ngStyle] = "{'background-color': getBackground(cnresult.STATUS)}"
然后在您的 component.ts 文件中,
getBackground(status) { (2)
switch (status) {
case 1:
return 'yellow';
case 2:
return 'green';
case 3:
return 'red';
}
}
我正在尝试根据 STATUS 值在 table 突出显示行。我可以通过以下方式让它使用黄色或无颜色:
[ngStyle]="{'background-color': cnresult.STATUS === 1 ? 'yellow' : ''}"
如果 STATUS === 2 变为红色,我该如何添加另一个选项?
您可以链接多个三元运算
[ngStyle]="{'background-color': cnresult.STATUS === 1 ? 'yellow' : cnresult.STATUS === 2 ? 'red' : ''}"
另一个可能更易于维护的选项是有条件地应用 class(es),如下所示:
<div [class.yellow]="cnresult.STATUS === 1"
[class.red]="cnresult.STATUS === 2"
></div>
// This belongs in your .css file
.yellow {
background-color: yellow;
}
.red {
background-color: red;
}
可以在ts文件中创建地图对象
colorMap = {
'1': 'yellow',
'2': 'red',
}
<div [ngStyle]="{'background-color': colorMap[cnresult.STATUS] || ''}"></div>
通过这个你可以添加多个条件
你也可以这样做,
[ngStyle] = "{'background-color': getBackground(cnresult.STATUS)}"
然后在您的 component.ts 文件中,
getBackground(status) { (2)
switch (status) {
case 1:
return 'yellow';
case 2:
return 'green';
case 3:
return 'red';
}
}