【发布时间】:2019-02-24 18:00:30
【问题描述】:
我已经创建了一个像 p-overlaypanel 这样的 Angular 组件,但它对我单击的每个项目都保持打开状态,我希望如果我单击另一个覆盖面板,最后单击的应该被隐藏,我不希望只有一个被单击并显示不是每个人 您可以在下面找到 stackblitz 中的代码。
https://stackblitz.com/edit/angular-yrsyt6?file=src/app/app.component.ts
这里是代码
<div class="dropdown">
<div class="body">
<ng-content select="[body]"></ng-content>
</div>
<div *ngIf="active" class="popup">
<ng-content select="[popup]"></ng-content>
</div>
</div>
.dropdown {
position: relative;
display: inline-block;
}
.popup {
display: block;
position: absolute;
z-index: 1000;
}
export class OverlaypanelComponent implements OnInit {
active = false;
constructor() {
}
ngOnInit() {
}
@HostListener('document:click', ['$event']) clickedOutside($event) {
this.active = false;
}
toggle($event) {
$event.preventDefault();
$event.stopPropagation();
this.active = !this.active;
}
close() {
this.active = false;
}
}
【问题讨论】:
标签: html css angular typescript