一尘不染

在ng-repeat块中有条件地添加元素

angularjs

是否可以根据条件向标签添加内容?像在此示例中一样,当我只想td在第一次迭代中添加时(仅用于的第一个元素myData)?

<tr ng-repeat="m in myData">
   <td>{{m.Name}}</td>
   <td>{{m.LastName}}</td>

   @if myData.indexOf(m) = 0 then // something like that
   <td rowspan ="{{m.length}}">
      <ul>
        <li ng-repeat="d in days">
           {{d.hours}}
        </li>
      </ul>
   </td> 
</tr>

阅读 339

收藏
2020-07-04

共1个答案

一尘不染

是的,在这种情况下,AngularJS具有两个指令:

  • 可以使用ng-show / ng-hide指令族基于评估表达式的结果来隐藏(通过使用显示CSS规则)DOM 3的一部分。
  • 如果我们想有条件地物理删除/添加DOM的一部分,那么ng-switch指令家族(ng-switch,ng-switch-when,ng-switch-default)会派上用场。

最终,两种解决方案都将提供相同的视觉效果,但底层的DOM结构将有所不同。对于简单的用例,ng-show / ng-hide可能还可以,但是应该使用ng-
switch处理DOM的较大部分。

对于这个问题的用例,我建议使用ng-switch。

2020-07-04