根据值angular js更改字体颜色

时间:2021-05-07 19:41:31

I am using AngularJS and I use ng-repeat to loop and show the details in the page.

我正在使用AngularJS,我使用ng-repeat循环并在页面中显示详细信息。

Is there a possibility to change the font color based on the value?

是否有可能根据值更改字体颜色?

<li ng-repeat="s in vm.States" >                        
  <span>{{s.Name}}</span>
  <span>{{s.state}}</span>
 </li>

Test1 -Error(Red)
Test2 - Warning(blue)
Test3 - Ignored(green)

Here s.state value can be Error, Warning or Ignored
Can I show different font colors for these states via angular or css?

这里s.state值可以是Error,Warning或Ignored我可以通过angular或css显示这些状态的不同字体颜色吗?

4 个解决方案

#1


15  

You can achieve this with following code:

您可以使用以下代码实现此目的:

<li ng-repeat="s in vm.States" >                        
  <span>{{s.Name}}</span>
  <span ng-class="{'color-red': s.state === 'Error', 'color-blue': s.state === 'Warning', 'color-green': s.state === 'Ignored'}">{{s.state}}</span>
</li>

Where 'color-red', 'color-blue', 'color-green' are your css classes.

'color-red','color-blue','color-green'是你的css课程。

See it in plunker.

在plunker中看到它。

Check documentation about ng-class.

检查有关ng-class的文档。

#2


4  

You can do it very easily by ng-class and css.

您可以通过ng-class和css轻松完成。

CSS code

CSS代码

.Error{color: red;}
.Warning{color: blue;}
.Ignored{color: green;}

Html code

Html代码

<li ng-repeat="s in vm.States" >                        
  <span>{{s.Name}}</span>
  <span ng-class="s.state">{{s.state}}</span>
</li>

#3


4  

It might be worth also taking a look over ngStyle which is the same as ngClass but provides conditional inline syling such as

值得一看的是ngStyle与ngClass相同,但提供条件内联syling,如

<li ng-repeat="s in vm.States" >                        
  <span>{{s.Name}}</span>
  <span ng-style="{'color: red': s.state === 'Error', 'color: blue': s.state === 'Warning', 'color: green': s.state === 'Ignored'}">{{s.state}}</span>
</li>

#4


1  

See this example

看这个例子

var myApp = angular.module('myapp',[]);

myApp
    .controller('MyCtrl1', function ($scope) {
        $scope.vm = {
            States: [
                {
                    Name: 'Error',
                    state: 'error',
                    color: 'red'
                },
                {
                    Name: 'Warning',
                    state: 'warning',
                    color: 'blue'
                },
                {
                    Name: 'Ignored',
                    state: 'ignored',
                    color: 'green'
                }
            ]
        };
    })
.red{
    color: red;
}

.blue{
    color: blue;   
}

.green{
    color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myapp">
    <div ng-controller="MyCtrl1">
        <li ng-repeat="s in vm.States" >                        
          <span ng-class="s.color">{{s.Name}}</span> - 
          <span ng-class="s.color">{{s.state}}</span>
         </li>
    </div>
 </div>

#1


15  

You can achieve this with following code:

您可以使用以下代码实现此目的:

<li ng-repeat="s in vm.States" >                        
  <span>{{s.Name}}</span>
  <span ng-class="{'color-red': s.state === 'Error', 'color-blue': s.state === 'Warning', 'color-green': s.state === 'Ignored'}">{{s.state}}</span>
</li>

Where 'color-red', 'color-blue', 'color-green' are your css classes.

'color-red','color-blue','color-green'是你的css课程。

See it in plunker.

在plunker中看到它。

Check documentation about ng-class.

检查有关ng-class的文档。

#2


4  

You can do it very easily by ng-class and css.

您可以通过ng-class和css轻松完成。

CSS code

CSS代码

.Error{color: red;}
.Warning{color: blue;}
.Ignored{color: green;}

Html code

Html代码

<li ng-repeat="s in vm.States" >                        
  <span>{{s.Name}}</span>
  <span ng-class="s.state">{{s.state}}</span>
</li>

#3


4  

It might be worth also taking a look over ngStyle which is the same as ngClass but provides conditional inline syling such as

值得一看的是ngStyle与ngClass相同,但提供条件内联syling,如

<li ng-repeat="s in vm.States" >                        
  <span>{{s.Name}}</span>
  <span ng-style="{'color: red': s.state === 'Error', 'color: blue': s.state === 'Warning', 'color: green': s.state === 'Ignored'}">{{s.state}}</span>
</li>

#4


1  

See this example

看这个例子

var myApp = angular.module('myapp',[]);

myApp
    .controller('MyCtrl1', function ($scope) {
        $scope.vm = {
            States: [
                {
                    Name: 'Error',
                    state: 'error',
                    color: 'red'
                },
                {
                    Name: 'Warning',
                    state: 'warning',
                    color: 'blue'
                },
                {
                    Name: 'Ignored',
                    state: 'ignored',
                    color: 'green'
                }
            ]
        };
    })
.red{
    color: red;
}

.blue{
    color: blue;   
}

.green{
    color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myapp">
    <div ng-controller="MyCtrl1">
        <li ng-repeat="s in vm.States" >                        
          <span ng-class="s.color">{{s.Name}}</span> - 
          <span ng-class="s.color">{{s.state}}</span>
         </li>
    </div>
 </div>