Я установил для автоматического размера значение true и ничего.
Я использую "@angular/material": "^18.2.3" и angular 18.


HTML-ФАЙЛ:< /p>
chevron_right
@for (item of menuItems; track $index) {
{{ item.data?.['icon'] || 'default_icon' }}
{{ item.title }}
}
ФАЙЛ TS:
import { CommonModule } from '@angular/common';
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
import { routes } from '../../app.routes';
import { RouterModule } from '@angular/router';
import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
import { MatButtonModule } from '@angular/material/button';
import { MatRadioModule } from '@angular/material/radio';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatIconModule } from '@angular/material/icon';
import { MatListModule } from '@angular/material/list';
import { MatToolbarModule } from '@angular/material/toolbar';
@Component({
selector: 'app-side-menu',
standalone: true,
imports: [
CommonModule,
RouterModule,
MatButtonModule,
MatRadioModule,
FormsModule,
ReactiveFormsModule,
MatSidenavModule,
MatIconModule,
MatListModule,
MatToolbarModule
],
templateUrl: './side-menu.component.html',
styleUrl: './side-menu.component.css',
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class SideMenuComponent {
public menuItems = routes
.map( route => route.children ?? [] )
.flat()
.filter( route => route?.path )
.filter( route => !route.path?.includes(':') )
isExpanded: boolean = true;
constructor() {
}
}
CSS-ФАЙЛ:
:host {
display: block;
}
mat-sidenav-container {
height: 100%;
}
.menu-item {
margin-left: 8px;
}
.chevron-button {
transition: 300ms ease-in-out;
transform: rotate(0deg);
}
.chevron-button.rotated {
transform: rotate(180deg);
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... ot-working
Мобильная версия