【发布时间】:2019-10-04 17:07:47
【问题描述】:
当我单击按钮并将打开的手风琴滚动到视图顶部时,我想展开手风琴(可折叠)。
我为此使用 ngx-bootstrap,它有一个“isOpenChange”事件,当任何手风琴展开时触发。在这里,我试图获取展开的手风琴组的 event.target。我正在使用下面的代码来滚动事件。
event.target.scrollIntoView({behavior: 'smooth', block: 'start', inline: 'nearest'});
我尝试从“isOpenChange”传递事件,但它只返回真/假。由于事件始终为真/假,因此我遇到了以下问题。我可以使用点击功能传递它,但在我的情况下,当我点击外部或同一页面另一部分的某个按钮时,手风琴应该打开。
我希望能够跟踪元素的目标事件。
<accordion [closeOthers]="true" [isAnimated]="true">
<div class="listitem" *ngFor="let equipment of equipments">
<accordion-group #group (isOpenChange)="equipmentOpened(equipment, $event)" [class.active]="equipment.active" [isOpen]="equipment.active">
<accordion-heading accordion-heading>
<span class="icon icon-{{ equipment.icon }} smallIcon"></span>
<div class="arrowdown icon-backward-arrow"></div>
<div class="accordionText">
<span>{{ equipment.description }}</span>
<span class="subtitle">Asset Id:<span class="listanswer">{{equipment.id }}</span></span>
</div>
</accordion-heading>
<div class="information-list" *ngIf="group.isOpen">
<ul>
<li class="listtitle">
Asset type
<div class="listanswer">{{equipment.type}}</div>
</li>
<li class="listtitle" *ngIf="equipment.batteryLevel != null">
Battery Level Sensor
<div class="listanswer">{{equipment.getBatteryPercentage()}}%</div>
</li>
<li class="listtitle" *ngIf="!isNumber(equipment.getTemperature())">
Temperature
<div class="listanswer">{{equipment.getTemperature()}}°C</div>
</li>
</ul>
<ul>
<li class="listtitle">
Last Seen (UTC timezone)
<div class="listanswer">{{equipment.getLastSeenDate() }}</div>
</li>
<li class="listtitle">
Owner
<div class="listanswer">{{equipment.owner}}</div>
</li>
<!-- <li class="listtitle">
Distance
<div class="listanswer">{{equipment.owner}} meters</div>
</li> -->
</ul>
<button (click)="showMap()" class="closeAndShowButton">Show on map</button>
</div>
</accordion-group>
</div>
【问题讨论】:
-
请html部分
-
我没有每个手风琴组的“ID”,因为它是动态的。
-
@YashwanthGurrapu 传递模板参考
-
@JoelJoseph 你能帮我看看你在说什么
标签: angular accordion ngx-bootstrap