javascript - 如何获取 Angular 中可见元素的连续索引并忽略隐藏元素 *ngFor 的索引?

标签 javascript angular typescript

我有 2 个 Angular 组件,分别用于显示已批准药房和新药房的列表。我只有一组药房,我想根据药房对象的状态(即是否批准)字段显示批准的药房列表。状态字段的类型为 bool 值。如果状态字段为 true,则药房对象将显示在批准的药房列表中,否则它将被隐藏。问题是我想获取可见元素的连续索引并避免对隐藏元素进行索引元素。 批准药房.html

 <tr  *ngFor="let pharmacy of newPharmacys;let i=index" >
        <ng-container *ngIf="pharmacy.status==false">
        <td (click)=navigateToPharmacy(pharmacy)>{{i+1}}</td>
        <td (click)=navigateToPharmacy(pharmacy)>{{pharmacy.createdOn}}</td>
        <td (click)=navigateToPharmacy(pharmacy)>{{pharmacy.name}}</td>
        <td (click)=navigateToPharmacy(pharmacy) >{{pharmacy.location}}</td>
        <td (click)=navigateToPharmacy(pharmacy)>{{pharmacy.email}}</td>
        <td (click)=navigateToPharmacy(pharmacy)>{{pharmacy.contact}}</td>
        <td (click)=navigateToPharmacy(pharmacy)><button type="button" class="btn btn-square btn-block btn-sm btn-primary" (click)="deleteFromDisabled(pharmacy)" (click)="addToEnabled(pharmacy)">approve</button></td>
        <td><label class="toggle-switch arya-3d toggle-primary">
            <input type="checkbox" class="toggle-input">
            <span class="toggle-slider"></span>
            </label>
        </td>
        </ng-container>
      </tr>

这里我想避免对隐藏元素建立索引。如何实现这一点?

最佳答案

我认为在模板内进行操作不是一个好的决定。模板用于显示内容,我们应该避免在模板(HTML)内进行数据操作。

如果您在组件类中过滤数据集并仅显示所需的数据,那就更好了。这样您就可以有效地执行操作。如果您将来想执行更多操作,它也将是可扩展的。

我在这里为您创建了一个 stackblitz 实例 - https://stackblitz.com/edit/angular-nhlfqm

关于javascript - 如何获取 Angular 中可见元素的连续索引并忽略隐藏元素 *ngFor 的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60588706/

相关文章:

reactjs - 在 Typescript 中,有没有办法对传入的 JSX.Element 进行类型检查?

typescript - 为什么在对象字面量和变量上键入的强制方式不同?

javascript - 在模型类中使用服务

javascript - 如何根据路由更改父组件上的 header

html - 如何仅对一个组件禁用 body 样式

javascript - 我应该怎么做才能替换:hover to something clickable

javascript - 在 GraphQL 中搜索具有特定字符串的特定结果

javascript - 在空函数中返回函数的结果是否有任何目的?

javascript - 从 yeoman 生成器本身将目录更改为新创建的 yeoman 项目

javascript - 使用 Parse 3.0.0 定义 Parse Cloud 代码