37

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

所以我有类似的东西:

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

以及我的控制器中的一个函数,它执行以下操作:

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

我尝试了几种不同的方法。甚至将颜色设置为支付对象中的数据属性,但似乎我无法获得 ng 样式来处理来自数据绑定的数据,有谁知道我可以做到这一点的方法吗?谢谢。

4

3 回答 3

95

不要在Angular 表达式中使用 {{}} :

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

从您的函数返回一个对象,而不是字符串:

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

小提琴

于 2013-04-19T19:30:01.283 回答
21

使用此代码

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

或者

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

例如蓝色

于 2014-09-03T11:07:45.970 回答
3

它可能对你有帮助!

<!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>
于 2015-05-21T06:59:46.317 回答