Angular 6 从另一个 ngFor 向 ngFor 元素添加活动类

杰克·斯派洛

我在 html 中有两个 ngFor 循环。一种用于显示标题,一种用于显示正文。两者都在同一个数组上迭代(比如 A)。数组A是数组B的每一项的元素。例如:B[id:1, arrayA:A[]]。数组 B 在单独的 ngFor 循环中迭代,该循环是 A 和 B 的父级。

当单击任何标题时,我想将活动类添加到数组 A 的每个元素的标题和正文。这对于数组 A 的第一个元素工作正常。对于所有剩余的元素,这都不适用于 body。

尝试代码 - [class.active]="elementA.toggle" 在标题和正文以及标题点击 - (click)="elementA.toggle = !elementA.toggle"

也尝试过 [ngClass]="elementA.toggle ? 'active' : ''" 只处理标题而不是正文。

如果需要,我可以共享代码。

在 Component.ts 中:

categories: [category_A, category_B] // Array B
category_A: any =
{ id: 2, name: "A", toggle: false, subCategories: [subCategory_A, subCategory_B] }
category_B: any =
{ id: 2, name: "B", toggle: false, subCategories: [subCategory_A] }

subCategory_A: any =
    { id: 2, name: "SubA", items: this.items_Bread, subCategoryToggle: false } // Array A
subCategory_B: any =
    { id: 2, name: "SubB", items: this.items_Bread, subCategoryToggle: false } // Array A

我的 HTML:

<div *ngFor="let Category of model.categories">
    <a data-toggle="collapse" href="#{{Category.name}}" (click)="Category.toggle = !Category.toggle;">{{Category.name}}</a>

    <!-- Header Section-->
    <div>
            <div>
                    <a href="#subCategory.name" class="list-group-item" *ngFor="let subCategory of Category.subCategories; let index = index" 
            [class.active]="subCategory.subCategoryToggle" (click)="subCategory.subCategoryToggle = !subCategory.subCategoryToggle">
                      {{subCategory.name}}
                    </a>

            </div>
         </div>
    <!-- Header Section-->

    <!-- Body Section-->
    <div  [attr.id]="subCategory.name" *ngFor="let subCategory of Category.subCategories; let index = index" 
        [ngClass]="subCategory.subCategoryToggle ? 'active' : ''" >
    <div>
    <!-- Body Section-->
<div>

此代码适用于类别中的第一个元素,即 category_A。但对于 category_B - 在正文部分中未设置活动类。

杰克·斯派洛
<div *ngFor="let Category of model.categories">
<a data-toggle="collapse" href="#{{Category.name}}" (click)="Category.toggle = !Category.toggle;" [attr.id]="Category.name">{{Category.name}}</a>

<!-- Header Section-->
<div>
        <div>
                <a href="#subCategory.name" class="list-group-item" *ngFor="let subCategory of Category.subCategories; let index = index" 
        (click)="subCategory.subCategoryToggle = !subCategory.subCategoryToggle" data-toggle="collapse" aria-expanded="false" [attr.aria-controls]="subCategory.name">
                  {{subCategory.name}}
                </a>

        </div>
     </div>
<!-- Header Section-->

<!-- Body Section-->
<div  [attr.id]="subCategory.name" *ngFor="let subCategory of Category.subCategories; let index = index" 
    [ngClass]="subCategory.subCategoryToggle ? 'active' : ''" [attr.data-parent]="'#' + Category.name">
<div>
<!-- Body Section-->

我的修复..

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将活动类添加到嵌套的 ngFor Angular 6 中的元素

来自分类Dev

ngFor Angular 6 中的 LINQ

来自分类Dev

在另一个 ngFor 中使用 ngFor?

来自分类Dev

* ngIf在一个元素上的错误导致* ngFor无法在另一个元素上正常工作

来自分类Dev

Angular 4 ngFor 为元素设置类

来自分类Dev

Angular 6:存储在 *ngFor 中使用的值

来自分类Dev

直接在ngFor Angular中重复两个元素

来自分类Dev

在同一tr元素上的Angular 2 ngFor

来自分类Dev

NgFor 在开始时显示第一个元素 - Angular 2

来自分类Dev

Angular 6 + 为无序列表中的嵌套 ngFor 设置活动状态

来自分类Dev

保存Angular 2 * ngFor循环的最后一个值

来自分类Dev

保存Angular 2 * ngFor循环的最后一个值

来自分类Dev

无法向 angular 5 请求调用添加另一个属性

来自分类Dev

Angular 6-在相同组件的变量更改时动态更改 *ngFor 元素的 css 属性

来自分类Dev

* div 类中的 Ngfor 不起作用 - Angular 6 和 Bootstrap

来自分类Dev

Angular2 ngFor父元素

来自分类Dev

ngFor元素上的Angular 2动画错误

来自分类Dev

Angular-忽略NgFor中的元素

来自分类Dev

ngFor元素上的Angular 2动画错误

来自分类Dev

Angular2中的分组元素* ngFor

来自分类Dev

angular2 ngfor 子组件元素

来自分类Dev

Angular2:ngFor和条件类

来自分类Dev

Angular 2-带条件类的* ngFor

来自分类Dev

如何在Angular 6中将ngSwitch与* ngFor一起使用

来自分类Dev

Angular 6 - 使用 *ngFor 显示数据库中的数据

来自分类Dev

用户单击后在 ngFor 中过滤:Angular 6

来自分类Dev

Angular 6+:从@input 在 ngFor 中传递数组名称

来自分类Dev

Angular 2 * ngFor语法

来自分类Dev

Angular 2 * ngFor问题