У меня есть простое угловое (8 +) приложение, использующее @angular/router
с несколькими компонентами в качестве маршрутов, и каждый компонент использует @angular/animations
для переходов.
<router-outlet>
директива isполноэкранный режим с использованием css width: 100vw
и height: 100vh
для отмены прокрутки по умолчанию. Моя идея заключается в том, чтобы обернуть каждый маршрут <div>
или определенным классом, который позволит определить фиксированный макет.
Моя текущая версия прекрасно работает, , но мне нужно вручную добавить <div>
инадеялся найти автоматическое решение , как @angular/animations
делает.
app.ts с основным маршрутизатором
<main [@routerTransition]="getState(o)">
<router-outlet #o="outlet"></router-outlet>
</main>
html-шаблон компонента маршрута
<div class="route"> <!-- ? class which should be automatically wrapped -->
<div class="container">
<h1>title</h1>
<p>Blablabla</p>
</div>
</div>
Маршруты
// State is use to bind animation
export const appRoutes: Routes = [
{
path: 'page1',
loadChildren: () => import('./page1/page1.module').then(mod => mod.Page1Module),
data: { theme: 'light' }
},
{
path: 'page2',
loadChildren: () => import('./page2/page2.module').then(mod => mod.Page2Module),
data: { theme: 'light' }
},
...
];
Как я уже сказал, этот код работает точно так же, как и ожидалось, но не нужно поддерживать вручную определенный макет DOM.