Задать вопрос
@djon_pulse

Скрыть блоки по клику вне области без overlay в angular. Как можно реализовать?

Доброго времени суток. Собственно сабж.
Есть много различных всплывающих окошек которые нужно скрывать по клику вне их области.

- окно выбора даты
- меню пользователя
- окно геокоординат
- и т.д.

Нужно как-то все это безобразие скрывать если был клик вне области самого элемента, например окна с выбором дат.
Сложность заключается в том, что нужно обойтись без заднего фона на который можно было бы повешать (click)="close()". Так же нужно подружить с компонентами, чтобы работало глобально и при этом не обрабатывался каждый клик если окна не открыты.

Сами окна на данный момент открываются так:
В глобальном файле global.module.ts есть export class Globals который содержит такие значения:

public openPupUp: boolean = false;
Глобальный потому, что использоваться может многократно на разных страницах.

В общем когда вызывается окно, false меняется на true и добавляется класс у вызываемого окна.

Как можно обработать клик по области вне окна?
Бывают ситуации когда нужно переключиться с окна выбора даты, например, на input поиска и дата должна скрыться.
Overlay решает эту проблему, но приходится 2 раза кликать на input, что не очень хорошо.
  • Вопрос задан
  • 290 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы