Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Angular 4中单击屏幕上任意位置的外部时关闭下拉列表_Angular_Typescript - Fatal编程技术网

如何在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
}