Angular下拉菜单无法在我点击外部时关闭。
创始人
2024-10-30 03:00:45
0

要解决Angular下拉菜单无法在点击外部时关闭的问题,可以使用以下代码示例中所示的几个步骤:

  1. 创建一个指令,用于检测用户是否点击了下拉菜单以外的任何地方。
import { Directive, ElementRef, HostListener, Output, EventEmitter } from '@angular/core';

@Directive({
  selector: '[clickOutside]'
})
export class ClickOutsideDirective {
  constructor(private elementRef: ElementRef) { }

  @Output()
  public clickOutside = new EventEmitter();

  @HostListener('document:click', ['$event.target'])
  public onClick(targetElement: any) {
    const clickedInside = this.elementRef.nativeElement.contains(targetElement);
    if (!clickedInside) {
      this.clickOutside.emit(null);
    }
  }
}
  1. 在你的下拉菜单组件中使用该指令,并在点击外部时关闭下拉菜单。

import { Component } from '@angular/core';

@Component({
  selector: 'app-dropdown',
  templateUrl: './dropdown.component.html',
  styleUrls: ['./dropdown.component.css']
})
export class DropdownComponent {
  isDropdownOpen: boolean = false;

  toggleDropdown() {
    this.isDropdownOpen = !this.isDropdownOpen;
  }

  closeDropdown() {
    this.isDropdownOpen = false;
  }
}

通过使用clickOutside指令,我们可以检测用户是否点击了下拉菜单以外的任何地方,并在点击外部时关闭下拉菜单。

相关内容

热门资讯

透视app!sohoo竞技联盟... 透视app!sohoo竞技联盟辅助器,aa poker辅助包,2025教程(有挂工具);一、soho...
透视线上!wepoker底牌透... 透视线上!wepoker底牌透视,固有真的是有挂(透视)新版2025教程(有挂辅助)运wepoker...
透视代打!pokemmo辅助脚... 透视代打!pokemmo辅助脚本,poker world辅助器,2025新版教程(有挂脚本)在进入p...
透视安装!拱趴游戏破解器,本然... 透视安装!拱趴游戏破解器,本然存在有挂(透视)切实教程(有挂黑科技)1、很好的工具软件,可以解锁游戏...
透视安装!佛手在线大菠萝智能辅... 透视安装!佛手在线大菠萝智能辅助器,悦扑克脚本,必胜教程(有挂细节)运佛手在线大菠萝智能辅助器辅助工...
透视科技!hhpoker买挂,... 透视科技!hhpoker买挂,本然是真的有挂(透视)攻略教程(有挂技巧)1、进入游戏-大厅左侧-新手...
透视最新!大菠萝免费辅助,一向... 透视最新!大菠萝免费辅助,一向是真的有挂(透视)必备教程(有挂揭秘)1、许多玩家不知道大菠萝免费辅助...
透视脚本!pokemmo修改器... 透视脚本!pokemmo修改器手机版,pokemmo修改器手机版,力荐教程(有挂细节)1、每一步都需...
透视透视!hh poker辅助... 透视透视!hh poker辅助有用吗,先前真的有挂(透视)揭秘攻略(有挂攻略)1、玩家可以在hh p...
透视脚本!约局吧开挂,poke... 透视脚本!约局吧开挂,pokemmo辅助器,技巧教程(有挂介绍)1、pokemmo辅助器机器人多个强...