Закрытие панели расширения Angular по щелчку - PullRequest
1 голос
/ 31 января 2020

Я видел несколько запросов на переключение открытых и закрытых Angular Материал, но я стараюсь всегда закрывать его по нажатию кнопки. Поэтому, если панель открыта и кнопка нажата, закройте панель.

Переключение работает без каких-либо проблем, но когда я пытаюсь всегда закрывать его (установив для panelOpenState значение false, это не похоже на работу для меня.

В моем html У меня есть:

<mat-expansion-panel [expanded]="panelOpenState">
    <mat-expansion-panel-header>
      <mat-panel-title>
        Workouts
      </mat-panel-title>
    </mat-expansion-panel-header>
   <a href="#">Create Workout</a>
  </mat-expansion-panel>

  <div>
    <div (click)="closePanel()">
      <h2>Training Plans </h2>
    </div>
  </div>

Я пытаюсь получить доступ к закрытию панели при нажатии на div. Для этого мое событие click в файле ts выглядит так, как показано ниже:

...
export class SidenavComponent {
  panelOpenState: boolean = false;

  closePanel() {
    this.panelOpenState = false;
  }
}

Кроме того, я попробовал несколько различных методов в функции * 1013. * Единственный успешно работающий метод - это переключение (this.panelOpenState = !this.panelOpenState).

Как я могу всегда закрывать панель? Установка значения false при щелчке не работает. Идея, по которой я щелкаю по элементу div и закрываю его, заключается в том, что я хочу, чтобы панель закрывалась в любое время, когда я go перехожу на другой маршрут.

1 Ответ

1 голос
/ 31 января 2020

Мы можем решить эту проблему, используя двустороннюю привязку к расширенному атрибуту mat-extension-panel.

<mat-expansion-panel [(expanded)]="panelOpenState">
    <mat-expansion-panel-header>
    ...
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...