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

Angular 2/4/6独立显示和隐藏divs

况安然
2023-03-14

我对使用Angular做事情还很陌生,所以我可能会忽略一些事情:

我正在用*ngfor生成多个div行。每一行都有一个切换按钮和一个隐藏的子DIV(子DIV也可以有隐藏的子DIV)。

我想尝试和做的是在点击切换按钮时独立地显示和隐藏子div(同时切换按钮图标也应该改变)。我设法使它工作,要么打开所有的div在同一时间,或当点击一行-切换,它将打开子div。

但当我点击另一个时,它会关闭之前点击的一个,并打开当前点击的一个。我曾考虑使用数组,但这只适用于DIV的第一层,而不适用于嵌套的DIV(因为最初我不知道有多少)。

下面是打开的子Divs和子Divs的一些说明:

rows      rows
>AA       -AA
>BB         >aa
>CC   ->  >BB
>DD       -CC
>FF         -cc
               c
           >DD
           -FF
             >ff

共有2个答案

梁丘飞鸾
2023-03-14

你需要手风琴试试这个:

您可以利用简单的CSS,使其变得简单。

HTML

   <table class="table">
    <tbody>
        <tr *ngFor="let game of games; let i = index" [ngClass]="{activetab: isActive(game.label)}">
            <div (click)="getSub(game.label);">
                <!-- use the uniqueId here  -->
                <td>{{game.date}}</td>
                <td>{{game.label}}</td>
                <td>{{game.score}}</td>
            </div>
            <table>
                <tbody [ngClass]="{activetab: isActive(game.label)}">
                    <tr *ngFor="let subgame of game.sub">
                        <td>{{subgame.date}}</td>
                        <td>{{subgame.label}}</td>
                        <td>{{subgame.score}}</td>
                    </tr>
                </tbody>
            </table>
        </tr>
    </tbody>
</table>

CSS

tr .activetab {
    display: block !important;
}

TS

      isActive(id) {
        return this.selected === id;
      }

     getSub(id) {
   //TODO//
    this.selected = (this.selected === id ? null : id);
  }

我想这应该很管用。

习洲
2023-03-14
<div *ngFor="hero of heroes">
   {{ hero.name }}
   <button (click)="hero.show = !hero.show">show/hide</button>
   <div class="sub" *ngIf="hero.show">
      more info here
   </div>
</div>

添加一些css来强调子部分

 类似资料:
  • 主要内容:实例,jQuery hide() 和 show(),实例,实例,实例,jQuery toggle(),实例隐藏、显示、切换,滑动,淡入淡出,以及动画,哇哦! 因为时间是宝贵的,我们提供快捷方便的学习方法。 在小牛知识库,你可以学习需要的知识。 实例 jQuery hide() 简单的jQuery hide()方法演示。 jQuery hide() 另一个hide()实例。演示如何隐藏文本。 jQuery hide() 和 show() 通过 jQuery,您可以使用 hide() 和

  • 问题内容: 您如何在Tkinter中显示和隐藏小部件?我想有一个输入框,但不要一直显示它。有人可以向我展示在tkinter中显示和隐藏条目小部件和其他小部件的功能吗?我希望能够在没有多个帧的情况下执行此操作。 问题答案: 这已经在stackoverflow上得到了回答。简短的答案是,您可以使用grid_remove,如果先前是通过网格添加的,则将导致该小部件被删除。记住小部件的位置,因此只需简单地

  • 我想隐藏的动作条,当一个activity启动,当用户触摸屏幕显示几秒钟,然后再次隐藏。 下面是我想要的,但我想知道是否有更好的方法(忽略一些样式问题:魔术数字、逻辑重复等)。 我用的是ActionBarSherlock。 谢谢

  • 排除不显示字段 Model.findAll({ attributes: { exclude: ['baz'] } });

  • 提供显示/隐藏元素的功能。 标题 内容 类型 通用 支持布局 responsive,fixed-height,fill,container,fixed 所需脚本 https://c.mipcdn.com/static/v2/mip-toggle/mip-toggle.js 示例 基本使用 你可以使用事件 toggle, show 或 hide 以控制 mip-toggle 组件的显示与隐藏。 <b

  • 本文向大家介绍jQuery控制元素隐藏和显示,包括了jQuery控制元素隐藏和显示的使用技巧和注意事项,需要的朋友参考一下 1、jQuery隐藏和显示效果 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: 2、jQuery淡入淡出效果 通过 jQuery,您可以实现元素的淡入淡出效果。 jQuery 拥有下面四种 fade 方法: fadeIn()