Angular多选下拉框(ng-multiselect-dropdown)- 点击外部时下拉框不关闭
创始人
2024-10-24 16:32:10
0

要解决Angular多选下拉框(ng-multiselect-dropdown)在点击外部时不关闭的问题,可以使用以下方法:

  1. 使用HostListener监听宿主元素的点击事件,在事件处理程序中检查点击是否发生在下拉框内,如果是则保持下拉框打开状态,否则关闭下拉框。
import { Component, ElementRef, HostListener } from '@angular/core';

@Component({
  selector: 'app-dropdown',
  template: `
    
`, styleUrls: ['./dropdown.component.css'] }) export class DropdownComponent { showDropdown: boolean = false; selectedItems: any[] = []; constructor(private elementRef: ElementRef) { } toggleDropdown() { this.showDropdown = !this.showDropdown; } @HostListener('document:click', ['$event.target']) public onClick(targetElement) { const clickedInside = this.elementRef.nativeElement.contains(targetElement); if (!clickedInside) { this.showDropdown = false; } } }
  1. 使用ViewChild获取下拉框的DOM元素,在ngOnInit生命周期钩子中使用EventEmitter监听宿主元素外部的点击事件,并在事件处理程序中检查点击是否发生在下拉框内,如果是则保持下拉框打开状态,否则关闭下拉框。
import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';

@Component({
  selector: 'app-dropdown',
  template: `
    
`, styleUrls: ['./dropdown.component.css'] }) export class DropdownComponent implements OnInit { showDropdown: boolean = false; selectedItems: any[] = []; @ViewChild('dropdownContent') dropdownContent: ElementRef; @Output() clickOutside: EventEmitter = new EventEmitter(); constructor(private elementRef: ElementRef) { } ngOnInit() { this.clickOutside.subscribe(() => { const clickedInside = this.elementRef.nativeElement.contains(event.target); if (!clickedInside) { this.showDropdown = false; } }); } toggleDropdown() { this.showDropdown = !this.showDropdown; } @HostListener('document:click', ['$event']) public onClick(event) { this.clickOutside.emit(event); } }

通过上述两种方法,你可以在Angular中实现点击外部时下拉框不关闭的功能,无论是使用HostListener还是ViewChild,都可以根据项目需求选择适合的方法。

相关内容

热门资讯

透视存在!wpk作弊最怕三个东... 透视存在!wpk作弊最怕三个东西,wpk私人局有透视吗,wepoke教程(原来真的是有挂)1、下载好...
透视游戏!哈糖大菠萝挂法,约局... 透视游戏!哈糖大菠萝挂法,约局吧德州真的存在透视吗,线上教程(有挂教程)所有人都在同一条线上,像星星...
透视黑科技!菠萝辅助器免费版的... 透视黑科技!菠萝辅助器免费版的特点,德州机器人代打脚本,德州论坛(有挂解密);1、菠萝辅助器免费版的...
透视黑科技!wpk德州局怎么透... 透视黑科技!wpk德州局怎么透视,wpk显示有作弊,透明挂教程(切实真的有挂);1)wpk德州局怎么...
透视私人局!pokemomo辅... 透视私人局!pokemomo辅助工具,智星德州插件,2025教程(有挂细节)1、pokemomo辅助...
透视系统!wpk软件是真的吗,... 透视系统!wpk软件是真的吗,wpk真吗,解说技巧(切实真的有挂)1、让任何用户在无需wpk软件是真...
透视透视!佛手在线大菠萝辅助,... 透视透视!佛手在线大菠萝辅助,poker红龙辅助,详细教程(有挂攻略)1、很好的工具软件,可以解锁游...
透视玄学!wpk安卓下载辅助,... 透视玄学!wpk安卓下载辅助,wpk作弊最怕三个东西,技巧教程(竟然存在有挂);wpk作弊最怕三个东...
透视辅助!werplan辅助软... 透视辅助!werplan辅助软件,佛手大菠萝辅助,大神讲解(有挂揭秘)1、佛手大菠萝辅助系统规律教程...
透视计算!wpk有那种辅助吗,... 透视计算!wpk有那种辅助吗,wpk模拟器,专业教程(总是是真的有挂)暗藏猫腻,小编详细说明wpk有...