当前位置: 首页 > 知识库问答 >
问题:

折叠/展开插入符号图标为所有项而不是仅一项更改

臧弘和
2023-03-14

在我的angular 2应用程序中,我正在使用一个折叠和扩展菜单,并且根据一个项目是否被扩展,图标会被切换。当前,当我展开一个菜单项时,图标会正确地切换和更改,但它也会对所有未展开的菜单项进行更改。

我如何确保图标css切换只发生在单击的菜单项。另外,我如何确保在展开新项之前,前一个展开的项也被折叠。因此一次只展开一个菜单项。

下面是我的Html,它是for循环的一部分:

<a data-toggle="collapse" [attr.aria-controls]="itemType.id" [attr.data-target]="'#'+itemType.id" (click)="toggleCollapse()">
    <span>{{itemType.name}}</span>
    <span class="win-icon" [ngClass]="collapse == 'open' ? 'win-icon-ChevronDown':'win-icon-ChevronLeft'"></span>
</a>

<ul [id]="itemType.id" data-toggle="buttons">
    <li class="btn" routerLinkActive="active">
        <input type="radio">
            <span (click)="...">
                item 1
            </span>
    </li>
    [...]
</ul>

在“我的组件”中:

public collapse: string = "closed";

public toggleCollapse() {
    this.collapse = this.collapse == "open" ? 'closed' : 'open';
}

共有1个答案

商品
2023-03-14

使用this.collable切换将更改所有项的状态。相反,您可以在itemType中使用temp属性,如itemType.Collable。并且,循环主数组使其折叠属性为true,以便在打开当前项时折叠所有其他项。

<a data-toggle="collapse" [attr.aria-controls]="itemType.id" [attr.data-target]="'#'+itemType.id"
    (click)="toggleCollapse(itemType, itemsArr)">
     <span>{{itemType.name}}</span>
     <span class="win-icon" [ngClass]="!itemType.collapse ? 'win-icon-ChevronDown':'win-icon-ChevronLeft'"></span>

null

在组件中:

public toggleCollapse(itemType, itemsArr) {
    itemsArr.forEach((itemType) => {itemType.collapse = true; }); // for making all other items collapsed when the current one is opened
    itemType.collapse = !itemType.collapse;
}
 类似资料:
  • 我正在使用Netbeans 7.2开发JavaFX2.2应用程序。我正在使用一个treeview,我扩展了TreeCell,为每个TreeItem提供一个上下文菜单,其中有一个MenuItem具有“collpase all”功能。treeview的最大深度级别为4。当用户右键单击级别2的TreeItem并单击“全部折叠”MenuItem时,我想使级别3的所有TreeItem折叠(setExpand

  • 我想展开/折叠我的recyclerView项目,以显示更多信息。我想实现与SlideExpandableListView相同的效果。 基本上,在我的viewHolder中,我有一个不可见的视图,我想做一个平滑的展开/折叠动画,而不是将可见性设置为仅可见/消失。我一次只需要扩展一个项目,如果有一些提升来显示该项目已被选中,那就太酷了。 这与新的Android最近通话历史记录列表的效果相同。“回调”和

  • 我在SWT(没有JFace)工作,我正在尝试自定义我使用侧栏的Tree的行为。 树中的顶级项目不应该是可选的;他们基本上是头。应该只有这些项目的子项目是可选的。因此,我希望用户界面的行为能够表明这一点;单击其中一个顶级项目应该展开或折叠,但不应该在指示器改变其状态和子级可见性改变之外提供任何类型的视觉反馈。 问题似乎是,在OS X上,展开/折叠指示器是一个三角形(不知道它是图像还是unicode字

  • 问题内容: 我已经成功创建了一个函数来切换我的各个行以使用以下方式打开和关闭: 和 有关更多代码,请参见plunkr。请注意,“菜单”中的展开/折叠按钮。 但是,我现在想不出一种方法来打开和关闭所有行。我希望能够以某种方式在行上运行for循环,然后在需要时调用toggle,但是我这样做的尝试失败了。在下面看到它们: 关于如何正确切换所有行的任何想法? 问题答案: 将该指令与和指令结合使用,我们可以

  • 我已展开treeView的某些项 我使用contextMenu向指定节点添加新项目 项已添加到我的结构(后端) 重新加载TreeView-它从一开始就显示(仅根目录) 我想有我的树视图的视图像之前添加项目(这个相同的项目折叠和展开)。我不知道怎么做。我正在考虑改变StructureNode的实现(add boolean field是扩展的并使用它,但它不起作用--我正在从文件中打开我的树视图,那里

  • 但当接收者发送“hello”时,这条聊天信息会显示在左侧位置,但它也会将其他信息显示在左侧位置,发送信息时也是如此。。下面是用户收到“Hello”时的屏幕截图 我不知道我错在哪里 我的回收者视图发送者布局 chat_layout_self.xml chat_layout_other.xml MessageAdapter.java