#angular #angular-material #toolbar #angular-routing #mat-sidenav
#angular #angular-материал #панель инструментов #angular-маршрутизация #mat-sidenav
Вопрос:
Я добавил панель инструментов и боковую панель навигации, используя angular material в app.component.html .
app.component.html
<div>
<mat-sidenav-container class="main-container">
<mat-sidenav #sideBarRef opened mode="side" [(opened)]='isSideBarOpen'>
<mat-nav-list>
<a mat-list-item href="#"> Home </a>
<a mat-list-item href="#"> Project Updates </a>
<a mat-list-item href="#"> General Updates </a>
<a mat-list-item href="#"> Help </a>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
<mat-toolbar color="primary">
<button (click)='sideBarRef.toggle()'><mat-icon>menu</mat-icon></button>
My Application
</mat-toolbar>
</mat-sidenav-content>
</mat-sidenav-container>
</div>
В пользовательском интерфейсе это выглядит так, как показано ниже.
На данный момент у меня есть только один компонент в моем приложении, то есть компонент приложения. Теперь я хочу разработать разные компоненты для каждой из кнопок, которые находятся слева на домашней странице. Когда пользователь нажимает на любую кнопку, я хочу показать соответствующий HTML-шаблон прямо на эти кнопки.
Как я могу это реализовать? Я ценю вашу помощь.
Комментарии:
1. поместите <router-outlet></router-outlet> внутри вашего <mat-sidenav-content> и на основе навигации маршрутизатора он покажет содержимое
Ответ №1:
Существует несколько способов реализовать это, в зависимости от архитектуры вашего приложения и конкретного варианта использования.
- Если при нажатии пользователем на A он изменяет как данные, так и отображение, например, интерфейс администратора, позволяющий управлять пользователями, группами, приложениями с помощью 3 боковых кнопок, используйте a в своем главном компьютере, создайте один маршрут / comp для каждого дисплея и маршрутизируйте пользователя, используя router-link для каждой кнопки.
- Если отображение остается неизменным, но кнопка просто изменяет базовые данные, используйте интеллектуальный компонент для создания своего представления, 1 компонент презентации для создания левой панели, наблюдаемой из ваших данных, отфильтрованных по нажатию кнопки с помощью ввода / вывода, и 1 компонент презентации, чтобы сделать основной дисплей с использованием данныхотправлено интеллектуальным компьютером. В качестве альтернативы используйте состояние (ngrx), действия для щелчка, селекторы для предоставления данных основному компоненту.