Блок прокрутки Angular Material CDK Overlay не работает при боковой панели навигации

Я добавляю наложение CDK к матовому навигатору. Я хотел бы заблокировать прокрутку на mat-sidenav, когда оверлей открыт.

Создаю оверлей с заблокированной прокруткой:

const overlayConfig = new OverlayConfig({
  scrollStrategy: this.overlay.scrollStrategies.block(),
});

const overlayRef = this.overlay.create(overlayConfig);

Я не делаю ничего особенного с mat-sidenav, так как по умолчанию он прокручивается.

Вот стек, показывающий проблему. Вы должны иметь возможность прокручивать боковую навигацию, затем открывать и накладывать и заметить, что боковая навигация все еще прокручивается

https://stackblitz.com/edit/angular-z68qqg

введите здесь описание изображения


person lostintranslation    schedule 07.03.2020    source источник
comment
глядя на код стратегии блочной прокрутки github.com/angular/components/blob/ похоже, что эта стратегия блокирует прокрутку только тела. Что вам нужно, так это будущий запрос, который вы можете зарегистрировать в angular components   -  person wnvko    schedule 08.03.2020
comment
@wnvko Ладно, облом. Я тоже безуспешно пробовал стратегию репозиции. Предполагая что-то подобное и там?   -  person lostintranslation    schedule 08.03.2020
comment
вы проверили стратегии прокрутки? material.angular.io/cdk/overlay/overview#scroll-strategies кажется, BlockScrollStrategy специально для этого   -  person feech    schedule 02.07.2020


Ответы (1)


Вы должны добавить директиву cdk-scrollable в прокручиваемый контейнер, как описано в этой проблеме https://github.com/angular/components/issues/6157.

person Ivan Zinchenko    schedule 18.08.2020