Я пытаюсь загрузить свой дочерний компонент (BasicStatControlComponent) на новую страницу, когда нажимаю кнопку (на match-controls.component.html). Однако вместо рендеринга BasicStatControlComponent на новой странице он заполняет ее непосредственно под моими кнопками в match-controls.component.html. Как бы я поступил так? Спасибо
Я полагаю, что это связано с расположением розетки маршрутизатора, но я не совсем уверен, как еще это сделать?
Я думал, что моя проблема заключалась в том, что с app.component.html
уже router-outlet
, тогда все, что мне нужно сделать, это удалить router-outlet
из match-controls.component.html. Тем не менее, после удаления router-outlet
из match-controls.component.html
нажатие кнопки ничего не дает, когда она должна была визуализировать basic-stat-control.component.html
. Нет ошибок через консоль
app-routing.module.ts
const routes: Routes = [
{ path: '', redirectTo: 'display-runner', pathMatch: 'full' },
{
path: 'display-runner',
loadChildren: () =>
import('./display-runner/display-runner.module').then(
m => m.DisplayRunnerModule
)
},
{
path:'match-controls',
loadChildren: () =>
import('./match-controls/match-controls.module').then(
m => m.MatchControlsModule
)
}
];
match-controls-routing.module.ts
const routes: Routes = [
{
path: '',
component: MatchControlsComponent,
children:
[
{ path: "", redirectTo: "match-controls" },
{ path: "/players-list", component: BasicStatControlComponent },
]
}
];
match-controls.component.ts
<button mat-raised-button>
<a routerLink="/players-list">
<div class="statLabel">Stat Label</div>
<div class="statValue">Stat Value</div>
</a>
</button>
basic-stat-control.component.html
<h2>Players List</h2>
<div class="teamStyle">
<ul>
<li *ngFor="let player of homeTeams.roster">
<mat-slide-toggle>{{player.firstName + ' ' + player.lastName}}</mat-slide-toggle>
</li>
</ul>
</div>
match-controls.component.html
<div class="wrapper">
<div class="left">
<h2>Home</h2>
<button mat-raised-button> <!-- implement ngFor: let statItem of statSchema-->
<a routerLink="/match-controls/players-list">
<div class="statLabel">Stat Label</div>
<div class="statValue">Stat Value</div>
</a>
</button>
<button mat-raised-button>
<div class="statLabel">Attempts Label</div>
<div class="statValue">Attempts Value</div>
</button>
<router-outlet></router-outlet>
</div>
<div class="right">
<h2>Guest</h2>
<button mat-raised-button>
<div class="statLabel">Stat Label</div>
<div class="statValue">Stat Value</div>
</button>
<button mat-raised-button>
<div class="statLabel">Attempts Label</div>
<div class="statValue">Attempts Value</div>
</button>
</div>
</div>
app.component.html
<mat-sidenav-content>
<router-outlet></router-outlet>
</mat-sidenav-content>