我想使用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-style来处理数据绑定中的数据, 有谁知道我可以做这个工作的方式?感谢。
答案 0 :(得分:95)
请勿在Angular expression内使用{{}}:
<td ng-style="set_color(payment)">{{payment.number}}</td>
从函数中返回一个对象,而不是字符串:
$scope.set_color = function (payment) {
if (payment.number > 50) {
return { color: "red" }
}
}
答案 1 :(得分:20)
使用此代码
<td style="color:{{payment.number>50?'red':'blue'}}">{{payment.number}}</td>
或
<td ng-style="{'color':(payment.number>50?'red':'blue')}">{{payment.number}}</td>
例如蓝色
答案 2 :(得分: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>