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.
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" }
}
}
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
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>