javascript - 如何在 *ngFor 中获得 *ngIf 的第一个真实值
问题描述
我有一系列需要根据角色显示的项目。我需要满足 ngIf 条件的第一个值。
我在下面添加我的代码:
我的数组(它最初的样子):
parentTabList = [
{
name: 'abc',
label: 'abc',
icon : 'question_answer',
role : ['vend_perm','vend_temp','vend_subs']
},
{
name: 'xyz',
label: 'xyz',
icon : 'question_answer',
role : ['vend_perm','vend_subs']
}
]
我的HTML: -
<ng-container *ngFor="let form of parentTabList let i = index">
<li *ngIf="form.role.includes(userRole)">
<a (click)="methodName(form)">
{{form.label}}
</a>
</li>
</ng-container>
UserRole 是我在用户登录时获得的字符串值。
如果它是要显示的第一个锚,我需要将 ngClass 添加到锚标记。(我是 StackOverflow 的菜鸟,如果需要更多解释,请告诉我)。
解决方案
您可以使用索引标识数组的第一个元素。
但根据我的理解,您需要使用角色过滤此数组,然后将ngClass应用于过滤列表中的第一个元素。
所以添加方法来返回关于角色的过滤数组
在模板中:
filterParentTabList(parentList: any) {
return parentList.filter(form => form.role.includes(this.userRole));
}
在视图中:
<ng-container *ngFor="let form of filterParentTabList(parentTabList); let i = index">
<li>
<a [ngClass]="{ 'addYourClaaName': i === 0 }" (click)="methodName(form)">
{{form.label}}
</a>
</li>
</ng-container>
快乐编码.. :)
推荐阅读
- python - 如何使用 selenium 将网页滚动到目标元素
- java - Android 应用程序未从 Socket 输入流中读取
- sql - Oracle——创建基于游标删除表的动态函数
- python - 使用文件对象将 json 列表压缩为 Gzip
- markdown - 如何阻止 pandoc 转义字符?
- python - 如何自然地对“WindowsPath”对象文件进行排序
- c - 浮点数在我的 C 程序中未正确显示
- r - Docker闪亮服务器自动进入示例欢迎页面
- node.js - 如何使用 react axios 和 node js fs.unlinkSync 删除本地存储中的图像或文件
- python - 如何使用 lxml 删除 XML 文档根元素之外的注释