Подписка на события стратегии прокрутки cdk
Я создаю сервис, который генерирует оверлеи cdk. Я пытаюсь найти способ прослушивания событий стратегии прокрутки cdk. Более конкретно, я хочу знать, когда cdk закрывает оверлей, используя стратегию прокрутки close. Конечной целью является создание наблюдаемой, которую потребители могут использовать, чтобы определить, открыт ли оверлей или нет (применять css условно, а что нет).
После небольшого поиска, похоже, что overlayRef имеет свойство _portalOutlet, которое имеет свойство _isDisposed ( https://github.com/angular/material2/blob/master/src/cdk/overlay/overlay-ref.ts). Это похоже на то, что я ищу, но, конечно, это частные объекты, недоступные для потребителей.
Я не могу себе представить, что оверлей cdk действительно не имеет публичной собственности для чего-то подобного, и я действительно надеюсь, что кто-то укажет на мое невежество. Я использую угловую 5, кстати.
1 ответ
Нашел это!
if (dropdownConfig.scrollStrategy === "close") {
overlayRef.detachments().subscribe( _ => {
this.isOpen = false;
this.isOpenSubject.next(false);
});
}
Надеюсь, это поможет случайной душе.