Angular 2路由延迟加载 - 路由中的参数
我有一个延迟加载组件和一个参数的问题。 我有两个模块:带有仪表板组件(DashboardComponent)的仪表板模块(DashboardModule)和另一个名为user(UserModule)的模块,其中一个组件(UserComponent)为示例。 UserComponent用于显示一个用户或创建一个新用户。 我想延迟加载模块UserModule。所以,我在我的文件app.routing.ts配置是:现在Angular 2路由延迟加载 - 路由中的参数
export const appRoutes: Routes = [
{ path: '', redirectTo: '/dashboard', pathMatch: 'full' },
{ path: '**', redirectTo: '/dashboard', pathMatch: 'full' },
{ path: 'user', loadChildren: 'app/user/user.module#UserModule' },
]
@NgModule({
imports: [ RouterModule.forRoot(appRoutes) ],
exports: [ RouterModule ]
})
export class AppRoutingModule {}
,在我的模块用户,我有一个文件来配置我的路线:user.routing.ts。 而我想为我的两种情况使用相同的路由:如果我的路由中存在某个ID,则显示一个用户,如果ID为空,则创建一个用户。 因此,我想这一点,但它不工作:
const userRoutes: Routes = [
{ path: '', component: UserComponent },
{ path: ':id', component: UserComponent } // This line does not work
];
@NgModule({
imports: [RouterModule.forChild(userRoutes)],
exports: [RouterModule]
})
export class UserRoutingModule { }
如果我有一个ID我的路线,它不工作,automaticaly路线追溯到用户。 例如:locahost:4200/user/123不起作用,并且有一个重定向到localhost:4200 /用户
我没有在这个案例中找到示例,所以我希望有人会帮助我。
谢谢。
您应该appRoutes
为什么? (我不是不同意,但它可以帮助其他人理解这是干什么的,以及干扰的原因。) – msanford
根据文档: '最后一条路径中的**路径是通配符。如果请求的URL不匹配配置中前面定义的路由的任何路径,路由器将选择此路由。这对于显示“404 - 未找到”页面或重定向到另一条路线很有用。 配置中的路由顺序很重要,这是由设计决定的。' 因此,不是删除,而是将其移动到'appRoutes'对象声明的末尾 –
是否需要更新我的答案? –
当我看到这种情况发生删除
{ path: '**', redirectTo: '/dashboard', pathMatch: 'full' },
设定时出现错误的地方。你有没有检查控制台,看看是否有任何错误发生?你也可以考虑打开路由追踪(如这里所示https://stackoverflow.com/questions/43618663/why-does-nothing-happen-when-i-click-on-a-link-built-with-routerlink-和-querypa/43618789#43618789)以更好地看到发生了什么。 – DeborahK
您是否正在导入user.module中的UserRoutingModule? – Gauss