angular - Angular Routing:如何在新页面上呈现子级
问题描述
当我单击按钮(在 match-controls.component.html 上)时,我试图在新页面上加载我的子组件(BasicStatControlComponent)。但是,它不是在新页面上呈现 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
. 通过控制台没有错误
应用程序路由.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
)
}
];
匹配控制-routing.module.ts
const routes: Routes = [
{
path: '',
component: MatchControlsComponent,
children:
[
{ path: "", redirectTo: "match-controls" },
{ path: "/players-list", component: BasicStatControlComponent },
]
}
];
匹配控件.component.ts
<button mat-raised-button>
<a routerLink="/players-list">
<div class="statLabel">Stat Label</div>
<div class="statValue">Stat Value</div>
</a>
</button>
基本统计控制.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>
匹配控件.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>
解决方案
const routes: Routes = [
{
path: '',
component: MatchControlsComponent,
children:
[
{ path: "", redirectTo: "match-controls" },
{ path: "players-list", component: BasicStatControlComponent },
]
}
];
路径必须写不带/
ieplayers-list
你写/players-list
的不是players-list
推荐阅读
- node.js - 如何测试 dotenv 包以确保它隐藏敏感数据?
- api - 如何通过 Google Play 玩家 ID 获取游戏列表?
- ios - 滚动时集合视图单元格重复
- python - Scrapy爬取完成后如何运行代码
- android - 如何使用 Jsoup 从 API 获取网页内容
- c - 将字节数组复制到c结构时出现问题
- ios - 尝试在 Xcode 11 中的 UITesting 期间滚动 MapView
- azure - Runbook 测试窗格未显示写入输出
- javascript - getDerivedStateFromProps 返回未定义
- c# - 如何在多个衍生的任务 ConfigureAwait 任务上“WaitAll”?