ng-repeat中的条件渲染

时间:2014-12-01 12:32:31

标签: angularjs conditional ng-repeat

我有一个使用Bootstrap的css运行的Angular webApp。

我现在正在做的是基于存储在矩阵中的一些数据来渲染表格,但在某些情况下,某些行没有显示相关数据,所以我所做的就是隐藏那些不相关的行。问题来了:我正在使用的引导表在对行中添加了灰色背景,在奇数行中添加了白色。

我使用的角度模板中的代码如下:

<tr ng-repeat="row in estadisticasT1" ng-hide="row.Noches == 0 && estadisticasT2[$index].Noches == 0">                
  <directive ng-if="comparar && ((row.Noches - estadisticasT2[$index].Noches) >= 0)" class="comparativa2">+{{row.Noches - estadisticasT2[$index].Noches}}</directive>
  <directive ng-if="comparar && ((row.Noches - estadisticasT2[$index].Noches) < 0)" class="comparativa3">{{row.Noches - estadisticasT2[$index].Noches}}</directive>    
</tr>  

我减少了代码只显示相关部分,标签是这个例子的用法,唯一有趣的部分是我使用带有比较的ng-hide来隐藏我的矩阵的不相关的行,但是问题在某些情况下,它会像这样呈现:

enter image description here

正如您所看到的,前两行的背景为灰色,后两行的背景为白色。我需要做的是在奇数行中显示灰色背景,在对中显示白色,但是我不能使用$ index变量,因为它不对应于显示的行但显示所有行或不。

任何有角度的专家都有一个可以帮助我的想法吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

使用ng-if代替ng-hide。后者完全从DOM树中删除节点,因此,它不应该干扰基于奇偶校验的CSS规则。请参阅nghide,ngshow和ng-if之间差异的详细信息,例如here或角度文档本身。