Angular2 - Set A Different Color to an element Dep

2020-01-31 08:00发布

I am new to Angular2 and was wondering how I go about setting a font color to an element depending on the value.

My scenario is: if the value of the input field is not 100 then I want it red but if it is 100 then I want it green.

I have the following code in place but cant get it working.

XXX.component.css

.red {
    color: red; 
}

.green {
    color: green;
}

XXX.component.css

<input mdInput placeholder="Proportion '%'" [(ngModel)]="proportion ">
<p>hello <span ng-class='{red : proportion!= '100', green: proportion === '100'}'>{{proportion}}</span></p>

5条回答
forever°为你锁心
2楼-- · 2020-01-31 08:06

You can use it like this:

 <div class="card template-card" [ngClass]="{'z-depth-3': template == selectedTemplate, 'not-selected': !(template == selectedTemplate) && selectedTemplate != null}">
查看更多
啃猪蹄的小仙女
3楼-- · 2020-01-31 08:07

You can also bind the style property.

<span [style.color]="proportion === '100' ? 'green' : 'red'"></span>
查看更多
Ridiculous、
4楼-- · 2020-01-31 08:14

Since you use Angular2, So you need to use [ngClass], and your input model is bind to proportion, So use it to compare,

Do it like :

<input mdInput placeholder="Proportion '%'" [(ngModel)]="proportion">
<p>hello <span [ngClass]="{'red': proportion !== '100', 'green': proportion === '100'}">{{username}}</span></p>
查看更多
走好不送
5楼-- · 2020-01-31 08:14

You need to modify your logic to have double quotes and ngModel proportion value

<input mdInput placeholder="Proportion '%'" [(ngModel)]="proportion">
<p>hello <span [ngClass]="{red : proportion != '100', green: proportion === '100'}">{{username}}</span></p>

Hope it helps!!

查看更多
【Aperson】
6楼-- · 2020-01-31 08:17

There are two solutions to change font color but depends on you requirement

  1. If you requirement is change inline style then you can use angular NgStyle Directive which Update an HTML element styles for you..

NgStyle directive Ex:

<span [ngStyle]="{'color': proportion === '100' ? 'green' : 'red'}"></span>

        ---------------------- OR -----------------------------------

<span [style.color]="proportion === '100' ? 'green' : 'red'"></span>
  1. If you requirement is change class then you can use angular NgClass Directive which Adds and removes CSS classes on an HTML element...

NgClass directive Ex:

<span [ngClass]="{proportion === '100' ? 'green': 'red'}"></span>
查看更多
登录 后发表回答