在angularjs中隐藏ng repeat中具有相同数据的html元素



我有一个任务数组,其中有两个重复的部门,但我不想在ng repeat中显示第二个重复的记录,但只想显示第一个记录,即使它是重复的。这是我的密码,有人能告诉我哪里出了问题吗。

<tr ng-repeat="t in item.requisitionTask track by t.id">
<td>
<div ng-hide="!$first ? item.requisitionTask[$index-1].department.departmentCode==$index.department.departmentCode : false">
{{t.department.departmentName}}</div>
</td>

通过特别针对数据来解决问题。

<td><div ng-hide="!$first ? item.requisitionTask[$index-1].department.departmentCode==item.requisitionTask[$index].department.departmentCode : false">

我怀疑,如果上一个项目包含与当前项目相同的departmentCode,则您希望隐藏数据。正如我在评论中提到的,您应该将此逻辑移动到控制器作用域上的函数中。

<tr ng-repeat="t in item.requisitionTask track by t.id">
  <td>
    <div ng-hide="isNotFirstOrSameCodeAsPrevious($index)">
        {{t.department.departmentName}}
    </div>
  </td>
</tr>

在您的控制器中:

function isNotFirstOrSameCodeAsPrevious($index) {
    if ($index === 0) return false;
    return item.requisitionTask[$index - 1].department.departmentCode ===
        item.requisitionTask[$index].department.departmentCode; 
}

最新更新