Я пытаюсь создать список mat-nav-list, в котором есть панели расширения mat как элементы списка. Проблема в том, что mat-nav-list не работает должным образом, выравниваются беспорядок, а панели расширения не работают должным образом. Как я думаю, это происходит из-за того, что mat-nav-lists не поддерживают mat-extension-panel как элементы списка. (Поправьте меня, если я ошибаюсь)  введите описание изображения здесь

Мой html-код выглядит следующим образом

<mat-nav-list>
    <mat-list-item>
    <mat-expansion-panel>
      <mat-expansion-panel-header>
        <mat-panel-title>
          Personal data
        </mat-panel-title>
        <mat-panel-description>
          Type your name and age
        </mat-panel-description>
      </mat-expansion-panel-header>
      <mat-form-field>
        <input matInput placeholder="First name">
      </mat-form-field>
      <mat-form-field>
        <input matInput placeholder="Age">
      </mat-form-field>
    </mat-expansion-panel>
  </mat-list-item>

  <mat-list-item>
    <mat-expansion-panel (opened)="panelOpenState = true"
                         (closed)="panelOpenState = false">
      <mat-expansion-panel-header>
        <mat-panel-title>
          Self aware panel
        </mat-panel-title>
        <mat-panel-description>
          Currently I am {{panelOpenState ? 'open' : 'closed'}}
        </mat-panel-description>
      </mat-expansion-panel-header>
      <p>I'm visible because I am open</p>
    </mat-expansion-panel>
  </mat-list-item>
</mat-nav-list>

Буду признателен, если кто-нибудь предоставит мне способ решения этой проблемы.

3
Tharushi Geethma 13 Мар 2019 в 12:46

1 ответ

Лучший ответ

Вместо использования mat-list-item у вас может быть div в цикле for, который повторяется, и вы также можете добавить панель расширения аналогичным образом

<div *ngFor="let hero of herolist">
   <mat-expansion-panel>
    // here you can do whateever you want
   </mat-expansion-panel>
</div>

Если вы хотите добиться этого с помощью sidenav, вы можете получить это

<ng-container>
    <mat-side-nav>
    </mat-side-nav>
</ng-container>
3
Bart de Ruijter 29 Апр 2019 в 16:04