gpt4 book ai didi

javascript - Angular 2 过滤器和切换功能无法按预期工作

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:34 27 4
gpt4 key购买 nike

我创建了一个汉堡菜单,并且有用于显示子类别的切换功能,在我对它们应用过滤器之前,此切换功能工作正常。通过过滤器切换功能搜索类别后不起作用。

这是我的html代码

<ul class="nav navbar-nav">
<div id="menuToggle" class="sidenav">
<ul id="menu">
<li>
<input class="form-control" type="search" [(ngModel)]="txtToSearch" placeholder="Search"/>
</li>
<li *ngFor="let category of (componentContents.dashboardMenu | dashboardFilter : txtToSearch); let i = index" >
<p class="toggleMenu" (click)="toggleMenu(i,componentContents.dashboardMenu)">{{category.category}}
</p>

<div *ngIf="category.show">
<ul id="{{(category.category).split(' ').join('-')}}" *ngIf="category.subCategory.length > 0">
<li *ngFor="let subCat of category.subCategory">
<a routerLink={{subCat.router}} routerLinkActive="active">
<span class="glyphicon glyphicon-bell" ></span>{{subCat.subcategory}} </a></li>
</ul>
</div>
<hr />
</li>
</ul>

在 component.ts 中,我使用此代码实现切换功能

toggleMenu(index, catArry) {
if (catArry[this.prevClicked] && this.prevClicked !== index) {
catArry[this.prevClicked].show = false;
}
catArry[index].show = !catArry[index].show;
this.prevClicked = index;
}

最佳答案

index 变量仅适用于当前结果。所以当应用过滤器时,结果发生变化,索引与元素在数组中的实际位置不对应。

您可以将类别本身传递给 toggleMenu(category, catArray) 函数而不是索引,并使用 catArray.indexOf(类别)

关于javascript - Angular 2 过滤器和切换功能无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46807677/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com