angular - 当另一个 Accordion 打开时关闭另一个 Accordion

标签 angular typescript

我尝试过自定义 Accordion ,其中第一个 Accordion 在页面加载时默认打开。总共有 3 个 Accordion 。当另一个 Accordion 打开时,我必须关闭另一个 Accordion 。

我尝试将“active”之类的自定义类附加到关闭的 Accordion 上。 Accordion 的内容来自 API

      <div class="card-accordion">
        <div
          class="card"
          *ngFor="let q of popUpContent?.questions; let i = index"
        >
          <div
            class="card-header"
            id="headingOne"
            type="button"
            data-toggle="collapse"
            [attr.data-target]="'#collapse' + i"
            [attr.aria-expanded]="i == 0 ? true : false"
            aria-controls="collapseOne"
          >
          </div>

          <div
            id="collapse{{ i }}"
            class="collapse"
            [ngClass]="{ in: i == 0 }"
            aria-labelledby="headingOne"
            data-parent="#accordionExample"
          >
            <div class="card-body">{{ q.description }}</div>
          </div>
        </div>
      </div>

我预计当另一个 Accordion 打开时,一个 Accordion 会关闭,但实际输出是当我打开另一个 Accordion 时,前一个 Accordion 不会关闭

最佳答案

我可以提出的建议是:

尝试从 typescript 末尾添加一个变量,默认值=您想要默认打开的 Accordion 的索引

currentAccordionindex = 0

然后应用您提到的“事件”类(我希望在 Accordion 的打开和关闭状态之间切换),例如:

[ngClass]="currentAccordionindex === i ? 'active':'' "

使用 Accordion 上的(单击)事件更新 currentAccordionindex 的此值。

关于angular - 当另一个 Accordion 打开时关闭另一个 Accordion ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54283310/

相关文章:

javascript - 嵌入在 iframe 调整大小事件中的 Angular2 应用程序

javascript - 如何避免 Leaflet Tile Layer WMS 实现中的闪烁?

javascript - 使用 Protractor 中的 Typescript,如何确定内部函数的范围以便其他函数可以访问它?

Angular 2 : No component factory found for function HomeComponent

javascript - 向递归函数添加类型

angular - ExpressionChangedAfterItHasBeenCheckedError : Expression has changed after it was checked - How to update template after Observable Value change

javascript - AngularFire2 AuthCredentials

angular - Kendo UI Angular 2+ Chart - 系列工具提示模板 - 访问类别值和其他数据

javascript - Angular 2 是取代普通的旧 AngularJS 还是替代品?

angular - 服务 : No provider for Renderer2