Подписка на события стратегии прокрутки 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);
  });
}

Надеюсь, это поможет случайной душе.

Другие вопросы по тегам