根据值更改图标颜色
Change icon color based on the value
我是 Angular2 的新手,我想知道如何根据值有条件地更改图标的 CSS。
在HTML中:
<li><i class="fa fa-check" [style.color]="'switch(types)'"></i>{{ types }}</li>
types 包含很多整数,范围从 1-3。
在 ts:
switch(p) {
if(p==0) {...} //return color red
if(p==1) {...} //return color blue
if(p==2) {...} //return color green
}
这似乎对我不起作用。
Switch 在它的正文中使用了 case,但它是缺失的。其他方法是使用函数绑定(这不是首选)但找不到任何其他解决方案。
[style.color]="color(types)"
color(p) {
if(p==0) {return 'green'}
if(p==1) {return 'red'}
if(p==2) {return 'blue'}
}
<li>
<i class="fa fa-check" [ngStyle]="{'color': switch(types)}">
{{types}}
</i>
</li>
switch(p) {
if(p==0) {return 'red'}
if(p==1) {return 'blue'}
if(p==2) {return 'green'}
}
你可以这样做:
<li><i class="fa fa-check" [ngStyle]="changeCSS(types)"></i>{{ types }}</li>
changeCSS(types:any){
let style:any;
if(types == 0){
style={
'background':'..',
'border-color':'....',
'border-bottom': '...',
}
}
return style;
}
希望对您有所帮助
EDIt:已按照建议删除了 ''
已回答但另一种可能的方法。
对于一小部分有界值,您也可以在 [ngClass] 中执行此操作。看起来像
[ngClass]="{'red':types === 0,
'blue':types === 1,
'green':types === 2}"
之所以可行,是因为这些值是独立的。您还必须在 css 文件中声明新的 类。
.red{
color:red;
}
.green{
color:green;
}
.blue{
color:blue;
}
这应该可以减少每次 运行 时间重新计算布局时必须调用方法的开销。这种方法可能是我将用于您的示例的方法。对于更复杂的条件或更大的一组值,我可能会使用函数调用方法。
我是 Angular2 的新手,我想知道如何根据值有条件地更改图标的 CSS。
在HTML中:
<li><i class="fa fa-check" [style.color]="'switch(types)'"></i>{{ types }}</li>
types 包含很多整数,范围从 1-3。
在 ts:
switch(p) {
if(p==0) {...} //return color red
if(p==1) {...} //return color blue
if(p==2) {...} //return color green
}
这似乎对我不起作用。
Switch 在它的正文中使用了 case,但它是缺失的。其他方法是使用函数绑定(这不是首选)但找不到任何其他解决方案。
[style.color]="color(types)"
color(p) {
if(p==0) {return 'green'}
if(p==1) {return 'red'}
if(p==2) {return 'blue'}
}
<li>
<i class="fa fa-check" [ngStyle]="{'color': switch(types)}">
{{types}}
</i>
</li>
switch(p) {
if(p==0) {return 'red'}
if(p==1) {return 'blue'}
if(p==2) {return 'green'}
}
你可以这样做:
<li><i class="fa fa-check" [ngStyle]="changeCSS(types)"></i>{{ types }}</li>
changeCSS(types:any){
let style:any;
if(types == 0){
style={
'background':'..',
'border-color':'....',
'border-bottom': '...',
}
}
return style;
}
希望对您有所帮助
EDIt:已按照建议删除了 ''
已回答但另一种可能的方法。
对于一小部分有界值,您也可以在 [ngClass] 中执行此操作。看起来像
[ngClass]="{'red':types === 0,
'blue':types === 1,
'green':types === 2}"
之所以可行,是因为这些值是独立的。您还必须在 css 文件中声明新的 类。
.red{
color:red;
}
.green{
color:green;
}
.blue{
color:blue;
}
这应该可以减少每次 运行 时间重新计算布局时必须调用方法的开销。这种方法可能是我将用于您的示例的方法。对于更复杂的条件或更大的一组值,我可能会使用函数调用方法。