Я пытаюсь создать выпадающее меню, которое автоматически закрывается, когда пользователь щелкает за его пределами. В этом меню я добавил компонент ng-select , но когда я нажимаю на одну из опций, меню закрывается, потому что раскрывающаяся панель ng-select не находится внутри DOM, когда она закрыта Есть ли способ достичь того, что я хочу? Раскрывающееся меню не закрывается, когда пользователь выбирает параметр ng? Вот пример проблемы: https://stackblitz.com/edit/angular-8m1ta5?file=src%2Fapp%2Fapp.component.ts
Вот код, который я использую для отслеживания клика пользователя:
@ViewChild('father', {static: false}) father;
@HostListener('document:click', ['$event.target'])
public onClick(targetElement) {
const clickedInside = this.father.nativeElement.contains(targetElement);
if (!clickedInside) {
this.dropdown = false;
}
}
#father
определить контейнер выпадающего меню.
--- ОБНОВЛЕНИЕ ---
Я нашел решение, но, возможно, оно не очень чистое: https://stackblitz.com/edit/angular-gymhed Я только что добавил новую переменную, которая изменилась с таймаутом в 500 мс после закрытия ng-select, таким образом, в течение 500 мс после выбора опции ng, раскрывающийся список не может быть закрыт.