#html #angular #typescript #ng-class #angular-ng-if
#HTML #angular #typescript #ng-class #angular-ng-if
Вопрос:
Цвет моего элемента значка mat должен изменяться динамически.
<mat-icon class="temperature icon" svgIcon="thermometer-alert" matTooltip = {{temp_tooltip}}
aria-label="Icon that displays a tooltip when focused or hovered over"
[ngClass]= "{
'safe' : 23 <= temp_tooltip <= 24.5,
'alarm_lowside' : 21 <= temp_tooltip < 23,
'alarm_highside' : 24.5 < temp_tooltip <= 26,
'critical_lowside' : temp_tooltip < 21,
'critical_highside' : temp_tooltip > 26
}" >
</mat-icon>
значение temp_tooltip привязывается в component.ts
и css имеют цветовой стиль
.safe {
color: green
}
.alarm_lowside {
color: yellow
}
.alarm_highside {
color: yellow
}
.critical_lowside {
color: red
}
.critical_highside{
color: red
}
он отлично работает с классами critical_lowside и critical_highside, но не для других классов. Как исправить. Правильно ли определен способ определения ngClass?
Комментарии:
1. Измените свое условие на это:
temp_tooltip >= 23 amp;amp; temp_tooltip <= 24.5,
… сделайте то же самое для всех.
Ответ №1:
23 <= temp_tooltip <= 24.5
это неправильное выражение в javascript / typescript.
Вы должны найти другой способ сформулировать это условие следующим образом 23 <= temp_tooltip amp;amp; temp_tooltip <= 24.5
Ответ №2:
Правильный синтаксис будет таким:
[ngClass]= "{
'safe' : temp_tooltip >= 23 amp;amp; temp_tooltip <= 24.5,
'alarm_lowside' : temp_tooltip >= 21 amp;amp; temp_tooltip < 23,
'alarm_highside' : temp_tooltip > 24.5 amp;amp; temp_tooltip <= 26,
'critical_lowside' : temp_tooltip < 21,
'critical_highside' : temp_tooltip > 26
}"