Я бы предложил использовать Угловой материал .
В разделе компоненты вы можете найти несколько компонентов материала, таких как menu , которое можно использовать в качестве главной навигационной панели.
Минимальный пример будет выглядеть следующим образом:
<mat-menu #appMenu="matMenu">
<button mat-menu-item>Settings</button>
<button mat-menu-item>Help</button>
</mat-menu>
<button mat-icon-button [matMenuTriggerFor]="appMenu">
<mat-icon>more_vert</mat-icon>
</button>
Посмотрите примеры для Menu, чтобы получить некоторые идеи:
https://material.angular.io/components/menu/examples
Кроме того, вы можете использовать несколько стартовых репо, чтобы увидеть, как Angular работает вместе с материалом, например angular-ngrx-material-starter
Если вы настаиваете на использовании для использования materializecss может использовать 'AfterViewInit' angular для инициализации элементов.В вашем файле 'ts' реализуйте 'AfterViewInit' и переопределите метод ngAfterViewInit ().Затем напишите свой код инициализации внутри функции setTimeout () внутри ngAfterViewInit ().
export class NameComponent implements OnInit, AfterViewInit {
....
ngAfterViewInit(): void {
setTimeout( function() {
var elem = document.querySelector('.sidenav');
var instance = M.Sidenav.init(elem, options);
}, 0)
}
.....
}