【发布时间】:2019-05-31 16:04:28
【问题描述】:
我的代码:
const routes: Routes = [{
path: '',
component: HomeComponent,
children: [
{
path: '',
component: ComponentOne,
outlet: 'homeMainContent',
pathMatch: 'full'
},]},
{
path: 'list',
component: ListComponent,
outlet: 'homeMainContent',
},
{
path: 'auth',
loadChildren: 'app/auth/auth.module#AuthModule'
}, {
path: 'admin',
loadChildren: 'app/admin/admin.module#AdminModule'
}];
当我访问列表组件时,url 正确解析但 html 模板没有改变。
如果我将 ComponentOne 和 ListComponent 路由放在同一个子数组中,如下所示:
const routes: Routes = [{
path: '',
component: HomeComponent,
children: [
{
path: '',
component: ComponentOne,
outlet: 'homeMainContent',
pathMatch: 'full'
},
{
path: 'list',
component: ListComponent,
outlet: 'homeMainContent',
},]},
我收到一个错误
错误:无法匹配任何路由。
我该如何解决:
- 要使用相应的 url 加载模板?
- 当我将 ComponentOne 和 ListComponent 路由放在同一个子数组中时,如何避免错误(如果可能)?
我已经看到了几个答案,包括这个answer,但它们并没有解决我的问题。
更新: 这是我的 HomeComponent 代码
<div class="body">
<div class="box">
<div class="one"><home-left-content></home-left-content></div>
<div class="two"><home-main-content></home-main-content></div>
<div class="three"><home-right-content></home-right-content></div>
</div>
</div>
而我的 home-main-content 组件代码如下所示:
<div>
<router-outlet name="homeMainContent"></router-outlet>
</div>
同样的设置适用于我的管理路由配置文件。这就是为什么当我收到错误时我很困惑。我想知道可能是因为我的路径是空的,还是因为主路由配置文件中存在 homecomponent 代码?
【问题讨论】:
-
你是如何制作
ComponentOne的?你的home.html和app.html是什么 -
刚刚看到这个named outlets require non empty parent route segment paths in angular-4-4-4. 我会尝试用这个信息解决我的问题并发布我的答案。如果有人在我之前做同样的事情,请发布您的答案。谢谢。
标签: angular angular-routing angular-router