Я думаю, вам следует переместить вашу целевую страницу в отдельный компонент, например, компонент с именем landing и сопоставить этот новый компонент со значением по умолчанию route '' ;
const appRoutes: Routes = [
{
path: 'room',
component: RoomComponent
},
{
path: '',
component: LandingComponent,
pathMatch: 'full'
},
{
path: '**',
redirectTo: ''
}
];
Ваш app.component. html должен сохранять только глобальный макет (меню навигации, если у вас есть, основной контент и, в конечном итоге, нижний колонтитул) и самый важный, выход маршрутизатора .
<!-- App component should contains application layout -->
<nav class="app-menu">
<!-- Your app menu should go here. Will be visible on each application "page" -->
</nav>
<main class="app-content">
<!-- Only router outlet to insert component as main content when route change -->
<router-outlet></router-outlet>
</main>
<footer>
<!-- Your app footer should go there. Will be visible on each application "page" -->
</footer>
Затем на целевой странице используйте ссылку роутера на кнопку, которая нацелена на «/ комнату». Когда пользователь нажмет на кнопку, маршрут изменится на / room, и маршрутизатор загрузит RoomComponent (который соответствует маршруту / room) и вставит его в выходной маршрутизатор вместо предыдущего LandingComponent.
<p>
landing works!
</p>
<button [routerLink]="['/room']">Go to room</button>
Таким образом, вам больше не нужно скрывать целевую страницу, маршрутизатор и механизм розетки-маршрутизатора, предоставляемые Angular, будут управлять вами за вас.
Я сделал пример для stackbliz для Если вы хотите попробовать: https://stackblitz.com/edit/angular-3moc8g]