在“ng-repeat”迭代中使用AngularJs“ng-style”

我正在使用ng-style来根据它们的值有条件地设置表中数据元素的颜色。 每一行数据都是用ng重复生成的。

所以我有这样的东西:

<tr ng-repeat="payment in payments"> <td ng-style="set_color({{payment}})">{{payment.number}}</td> 

和我的控制器中的一个function,做如下:

 $scope.set_color = function (payment) { if (payment.number > 50) { return '{color: red}' } } 

我尝试了一些不同的东西。 甚至将颜色设置为支付对象中的数据属性,但是看起来我无法获得ng-style来处理来自数据绑定的数据,有没有人知道我能做到这一点的方法? 谢谢。

不要在Angularexpression式中使用{{}}:

 <td ng-style="set_color(payment)">{{payment.number}}</td> 

从函数中返回一个对象,而不是一个string:

 $scope.set_color = function (payment) { if (payment.number > 50) { return { color: "red" } } } 

小提琴

使用这个代码

 <td style="color:{{payment.number>50?'red':'blue'}}">{{payment.number}}</td> 

要么

 <td ng-style="{'color':(payment.number>50?'red':'blue')}">{{payment.number}}</td> 

蓝色为例

它可能会帮助你!

 <!DOCTYPE html> <html> <head> <style> .yelloColor { background-color: gray; } .meterColor { background-color: green; } </style> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> <script> var app = angular.module('ngStyleApp', []); app.controller('ngStyleCtrl', function($scope) { $scope.bar = "48%"; }); </script> </head> <body ng-app="ngStyleApp" ng-controller="ngStyleCtrl"> <div class="yelloColor"> <div class="meterColor" ng-style="{'width':bar}"> <h4> {{bar}} DATA USED OF 100%</h4> </div> </div> </body> </html>