Спасибо большое! Очень интиресное решение!
Только # из ответа убирите, а то может быть что кто-то, также как и я, будет несколько минут думать почему это не работает.
Тоесть компонент подписывается на Event listener и ловит события, а когда нам не нужно ловить события я отписываюсь от Event listener. Правильно я понял?