angular - 带有子路由的延迟加载模块
问题描述
我在尝试导航到 app/enter-transaction/product-select 时收到错误消息。
错误:无法匹配任何路由。URL 段:'app/enter-transaction/product-selection'
这是我实现路由的方式。(包括延迟加载模块)
App.routing.module.ts
import { NgModule } from "@angular/core";
import { Routes, RouterModule } from "@angular/router";
import { LayoutComponent } from "./layout/layout.component";
const routes: Routes = [
{
path: "",
redirectTo: "app",
pathMatch: "full"
},
{
path: "app",
component: LayoutComponent,
children: [
{
path: "enter-transaction",
loadChildren: () =>
import(
"./modules/enter-transaction.module/enter-transaction.module"
).then(mod => mod.EnterTransactionModule)
}
]
},
{
path: "login",
component: LoginComponent
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {}
进入事务模块
import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { EnterTransactionRoutingModule } from "./enter-
transaction.routing.model";
@NgModule({
declarations: [],
imports: [CommonModule, EnterTransactionRoutingModule]
})
export class EnterTransactionModule {}
进入交易路由模块
import { NgModule } from "@angular/core";
import { Routes, RouterModule } from "@angular/router";
import { ProductSelectionComponent } from "./../../enter-
transaction/product-selection/product-selection.component";
import { InvestorDetailComponent } from "./../../enter-
transaction/investor-detail/investor-detail.component";
import { EnterTransactionComponent } from "src/app/enter-
transaction/enter-transaction.component";
const routes: Routes = [
{
path: "enter-transaction",
component: EnterTransactionComponent,
children: [
{
path: "product-selection",
component: ProductSelectionComponent
},
{
path: "investor-detail",
component: InvestorDetailComponent
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class EnterTransactionRoutingModule {}
HTML结构
app.component.html
<router-outlet></router-outlet>
layout.component.html
<app-cxi-layout-header></app-cxi-layout-header>
<app-cxi-layout-sidemenu></app-cxi-layout-sidemenu>
<app-cxi-layout-content></app-cxi-layout-content>
cxi-layout-content.component.html
<div class="cxi-layout-outer-body ">
<div class="cxi-layout-inner-body flex content-center">
<router-outlet></router-outlet>
</div>
</div>
输入-transaction.component.html
<h1>Enter-transaction > &&</h1>
<router-outlet></router-outlet>
产品选择.component.html
<p>product-selection works!</p>
我正在使用角度 8。如果我不使用延迟加载。它会正常工作。但是如果我使用延迟加载 enter-transaction 模块。它告诉我不能匹配任何路线。我希望我可以在正确的路径中看到产品选择组件的内容。
解决方案
推荐阅读
- msbuild - TFS Build 2013 避免代码分析
- powershell - foreach 的输入和输出到表中的列
- reactjs - 区块链交易中的 Chrome 扩展问题
- .net - .NET 的缓存实现
- java - Mockito 无法使用谓词函数
- mysql - 从两列中选择值并将它们连接到不同表的列中
- json - 如何发布两个文件
- android - 动态复选框上的 onclicklistener 并检查复选框是否被选中
- javascript - 未捕获的类型错误:无法读取 app.js:4 处未定义的属性“addEventListener”
- function - 仅使用一个应用 lambda 的方法接口改进 Kotlin 扩展函数的语法