如何在Angular 4中单击屏幕上任意位置的外部时关闭下拉列表
我正在添加一个“打开”类,点击打开下拉菜单。我将等参线作为布尔值,以便在单击时切换打开和关闭。它工作正常。问题是当我点击外部(屏幕上的任何地方)时,下拉菜单并没有关闭。它只在点击按钮时打开和关闭。 代码如下:如何在Angular 4中单击屏幕上任意位置的外部时关闭下拉列表,angular,typescript,Angular,Typescript,我正在添加一个“打开”类,点击打开下拉菜单。我将等参线作为布尔值,以便在单击时切换打开和关闭。它工作正常。问题是当我点击外部(屏幕上的任何地方)时,下拉菜单并没有关闭。它只在点击按钮时打开和关闭。 代码如下: ******************** HTML ******************** <div class="btn-group dropdown" [class.open]="isOpen"> <button class="btn btn-d
********************
HTML
********************
<div class="btn-group dropdown" [class.open]="isOpen">
<button class="btn btn-default dropdown-toggle area-dropdown" (click)="onDropdownToggle()">
<span class="eo-select-label ellipsis"> Select area size</span>
<span aria-hidden="true" class="caret glyphicon></span>
</button>
<ul class="eo-dropdown-menu">
<li class="li-employee-number-selector"> 5 - 50 Square meters </li>
<li class="li-employee-number-selector"> 51 - 100 Square meters </li>
</ul>
</div>
********************
Component.ts
********************
export class SellerFactoryProfileComponent implements OnInit {
isOpen: boolean;
constructor() { }
ngOnInit() {
}
onDropdownToggle() {
this.isOpen = !this.isOpen;
}
********************
HTML
********************
选择区域大小
若要侦听窗口事件(例如单击),必须在用@HostListener('document:click')装饰器装饰的组件中添加事件侦听器方法。若要侦听窗口事件(例如单击),必须在用@HostListener装饰的组件中添加事件侦听器方法('document:click')装饰器。您可以添加@组件
selector: '<app-name>',
host: {
'(document:click)': 'functionClick($event)',
}
functionClick {
this.open = false
}
选择器:“”,
主持人:{
“(文档:单击)”:“函数单击($event)”,
}
功能点击{
this.open=false
}
您可以添加@组件
selector: '<app-name>',
host: {
'(document:click)': 'functionClick($event)',
}
functionClick {
this.open = false
}
选择器:“”,
主持人:{
“(文档:单击)”:“函数单击($event)”,
}
功能点击{
this.open=false
}