我试图想出一种方法来为一个带有AngularJS控制器结果的html表有条件地格式化(一个简单的背景颜色)。这有希望发生在ng-repeat的迭代期间,因为它通过数组中的元素工作。
我想要完成的是:每当控制器内的一个函数返回true时,背景或样式为绿色,如果不是,它将为红色。
在插入点的注释中查找“BEGIN QUESTION”。
<!-- PLAYER STATS TABLE -->
<div id = "StatsListTable">
<table border="1" style="width:80%">
<tr> <!-- TODO: class="tr.pstats" -->
<th>Character Name</th>
<th>
<div ng-app="KIdash" ng-controller="controller">
Total Matches: {{TotalMatchesFunc()}} :: {{GreaterWins()}}
</div>
</th>
<th class="green">Wins</th>
<th class="red">Losses</th>
</tr>
<tr ng-repeat="ps in PlayerStats" class = "playerStatTable">
<td>{{ps.name}}</td>
<td>{{ps.matches}}</td>
<!-- BEGIN QUESTION -->
<!-- IF {{GreaterWins()}} make it green -->
<!-- ELSE make it red -->
<script type="text/javascript">
function() {
if( controller.GreaterWins() )
{
<th class="green">{{ps.wins}}</th>
} else {
<th class="red">{{ps.wins}}</th>
}
}
</script>
<!-- END IF -->
<td>{{ps.losses}}</td>
</tr>
<table>
</div>
<!-- END PLAYER STATS TABLE -->
答案 0 :(得分:2)
您可以通过ng-class执行此操作。如下所示:
<tr ng-repeat="ps in PlayerStats" class = "playerStatTable">
<td>{{ps.name}}</td>
<td>{{ps.matches}}</td>
<td ng-class="{'green': GreaterWins(),'red': !GreaterWins() }">{{ps.wins}}</td>
<td>{{ps.losses}}</td>
</tr>