javascript - 如何在 *ngFor 中获取 *ngIf 的第一个真值

标签 javascript angular typescript

我有一组需要根据 Angular 色显示的项目。我需要满足 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 是用户登录时得到的字符串值。

如果它是要显示的第一个 anchor ,我需要将 ngClass 添加到 anchor 标记。 (我是 StackOverflow 的菜鸟,如果需要更多解释,请告诉我)。

最佳答案

您可以使用索引标识数组的第一个元素。

但根据我的理解,您需要使用 Angular 色过滤此数组,然后将 ngClass 应用于过滤列表中的第一个元素。

因此添加方法以返回关于 Angular 色的过滤数组

在模板中:

 filterParentTabList(parentList: any) {
     return parentList.filter(form => form.role.includes(this.userRole));
 }

在 View 中:

<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>

快乐编码.. :)

关于javascript - 如何在 *ngFor 中获取 *ngIf 的第一个真值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66416945/

相关文章:

angular - 使用IONIC Storage Service,如何获取和返回存储的JSON数据?

javascript - Ionic 3 typescript cordova DateTimePicker代码反向运行

reactjs - 使用 ESLint 保存时格式化文件

javascript - 使用JQuery访问另一个文件中一个文件的js变量

javascript - 如何在另一个库中更新后自动重新启动 Next.js 应用程序?

javascript - 为什么 jquery scroll 函数只有在第二次或第三次使用后才能正常加载?

typescript - 如何使用 fetchApi angular2 TYpescript 在 View 中绑定(bind) Ajax 结果?

javascript - 如何将命名导入放入命名空间?

angular - 'zxing-scanner' 不是已知元素 : 1. 如果 'zxing-scanner' 是 Angular 组件,则验证它是该模块的一部分

angular - 警告 : Can't resolve all parameters for Storage in PATH/node_modules/@ionic/storage/es2015/storage. d.ts : (? )