материал angular sidenav триггер изменения размера - PullRequest
0 голосов
/ 01 марта 2020

Я использую angular 8 и материал темы. После https://material.angular.io/components/sidenav/overview

Я генерирую содержимое внутри <mat-sidenav> </mat-sidenav> динамически с помощью пользовательского ввода.

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

the menu button can be seen

Когда я изменяю содержимое внутри sidenav на более длинное содержимое, оно НЕ изменяет размеры .

enter image description here

Может быть, я могу вызвать его, открыв и закрыв sidenav. Есть ли функция для запуска изменения размера?

В документах я вижу

@ Input () autosize: boolean Следует ли автоматически изменять размер контейнера при изменении размера любого из его ящиков , Используйте на на свой страх и риск ! Включение этой опции может вызвать смещение макета путем измерения ящиков на каждом цикле обнаружения изменений. Может быть настроен глобально через токен MAT_DRAWER_DEFAULT_AUTOSIZE.

Я не хочу использовать авторазмер. кнопка меню.

1 Ответ

0 голосов
/ 04 мая 2020

Хитрость заключается в том, чтобы установить autosize в true, когда вы знаете, что собираетесь изменить размер sidenav и отключить его после завершения изменения размера.

autosize: boolean = false;

doSomethingToChangeSidenavWidth() {
  // do something...
  // ...then
  this.autosize = true;
  setTimeout(() => this.autosize = false, 1);
}
<mat-sidenav-container class="example-container" [(autosize)]="autosize">
...