Подтвердить что ты не робот

Использование AngularJs "ng-style" в итерации "ng-repeat"

Я пытаюсь условно установить цвета элементов данных в таблице на основе их значения, используя ng-стиль. Каждая строка данных генерируется с использованием повторения ng.

Итак, у меня есть что-то вроде:

<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-стиль для обработки данных из привязок данных, Кто-нибудь знает, как я могу это сделать? Спасибо.

4b9b3361

Ответ 1

Не используйте {{}} s внутри выражения Angular:

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

Верните объект, а не строку, из вашей функции:

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

Fiddle

Ответ 2

используйте этот код

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

или

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

синий цвет, например

Ответ 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>