angular - Angular 8 - 子路由器链接不起作用
问题描述
我想从一个页面导航到另一个页面,从一个组件导航到另一个组件:
const routes: Routes = [
{
path: '',
component: UploadPageComponent,
children: [
{
path: 'frameworks',
component: FrameworksSceneComponent,
pathMatch: 'full',
children: [
{//doesn't work
path: 'questionnaire',
component: QuestionnaireComponent,
},
],
},
{
path: 'documents',
component: DocumentsSceneComponent,
pathMatch: 'full',
},
{//works
path: 'questionnaire',
component: QuestionnaireComponent,
pathMatch: 'full',
},
],
},
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class UploadRoutingModule {
}
我的模板(FrameworksSceneComponent):
<a [routerLink]="['questionnaire']">aaaaaaaaaaaaaaaaaaaa</a>
但这有效(FrameworksSceneComponent):
<a [routerLink]="['/private/upload/questionnaire']">bbbbbbbbbbbbbbbbbbbbbbbbbbbbb</a>
我的嵌套链接有什么问题?为什么点击后aaaaaaaaaaaaaaaaaa
我被重定向到我的主页。另一方面,链接bbbbbbbbbbbbbbbb
有效,但在这种情况下,链接不是子链接。
解决方案
你实现嵌套路由的方式,<router-outlet>
在你的FrameworksSceneComponent.html
. 尝试如下实施。不知道为什么它导航到主页。
routes: Routes = [
{
path: "",
children: [
{
path: "",
component: UploadPageComponent
},
{
path: "frameworks",
children: [
{
path: "",
component: FrameworksSceneComponent,
pathMatch: "full"
},
{
//should work
path: "questionnaire",
component: QuestionnaireComponent
}
]
},
{
path: "documents",
component: DocumentsSceneComponent,
pathMatch: "full"
},
{
//works
path: "questionnaire",
component: QuestionnaireComponent,
pathMatch: "full"
}
]
}
];
推荐阅读
- javascript - 删除另一个样式标记后通过 js 添加样式标记不起作用
- c# - OpenXML 读取文档
- html - 为什么列表图标不出现?
- python - 如何强制以特定的明显模式对数据进行聚类?
- dart - how can put image inside the image in flutter
- rubymine - 有没有办法通过 JetBrains IDE 运行 PowerShell 脚本?
- c - 为什么当我按 CTRL+C 时程序读取零字节?(C-Posix)
- api - 如何限制每个用户或组在 Azure API 管理 (APIM) 中使用操作
- apache-spark - Spark read single column from PostgreSQL table
- php - Yii 2:在 require_once 中使用类