it-swarm.com.de

Verwendung von AngularJs "ng-style" innerhalb der "ng-repeat" -Iteration

Ich versuche, die Farben von Datenelementen in einer Tabelle basierend auf ihrem Wert unter Verwendung des ng-Stils bedingt festzulegen. Jede Datenzeile wird mit ng repeat generiert.

Also habe ich so etwas wie:

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

und eine Funktion in meinem Controller, die ungefähr so ​​funktioniert:

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

Ich habe ein paar verschiedene Dinge ausprobiert. und sogar die Farbe als Datenattribut im Zahlungsobjekt festlegen, aber es scheint, dass ich keinen ng-Stil bekomme, um Daten aus den Datenbindungen zu verarbeiten. Kennt jemand eine Möglichkeit, wie ich das funktionieren lassen könnte? Vielen Dank.

37

Verwenden Sie keine {{}} s in einem Angular expression :

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

Geben Sie ein Objekt und keine Zeichenfolge aus Ihrer Funktion zurück:

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

Geige

95
Mark Rajcok

benutze diesen Code

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

oder

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

blaue Farbe zum Beispiel

21

Es könnte dir helfen!

<!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>
3
Anil Singh