Angular 路由取决于用户是否登录
我有以下路线Angular 路由取决于用户是否登录,angular,Angular,我有以下路线 { path: '', loadChildren: './home/home.module#HomeModule' } 当用户登录时,我想为同一根路径加载不同的模块 根据用户是否登录,路由到页面的正确方式是什么 使用resetconfig似乎是一条可行之路。但我不确定如何通过延迟加载实现这一点。我正在应用程序加载期间调用resetConfig this.router.resetConfig([ { path: '', loadChildren: './user/use
{ path: '', loadChildren: './home/home.module#HomeModule' }
当用户登录时,我想为同一根路径加载不同的模块
根据用户是否登录,路由到页面的正确方式是什么
使用resetconfig似乎是一条可行之路。但我不确定如何通过延迟加载实现这一点。我正在应用程序加载期间调用resetConfig
this.router.resetConfig([
{ path: '', loadChildren: './user/user.module#UserModule' },
]);
但我可能还需要在user.module中动态指定子根,因为如果它们已经在模块文件中定义,路由将被覆盖
const ROUTES: Routes = [
{ path: '', component: UserComponent }
];
@NgModule({
imports: [
RouterModule.forChild(ROUTES),
],
declarations: [
UserComponent
],
exports: [UserComponent],
providers: []
})
export class UserModule {
}
您知道如何通过延迟加载实现resetConfig吗?在运行时,您可以使用方法更改路由配置并替换此指定路径的模块名谢谢@echonax,但是我想将用户重新路由到同一路径,但加载不同的模块。例如,根路径www.examplesite.com应根据用户是否登录显示不同的模式。你知道这在路由中是否可行吗?@doorman:你是说仅仅将用户重定向到另一个路径(如果他们登录)是不可行的?嗨@AngularFrance,我不希望url更改为www.examplesite.com/redirectedroute,我希望它保持在www.examplesite.com,即使用户登录在I@s-f resetconfig中,这似乎是最好的选择。我更新了上面关于如何通过延迟加载实现这一点的问题。@doorman我没有理解“但我可能还需要在user.module中动态指定子根,因为如果它们已经在模块文件中定义,路由将被覆盖。”为什么你必须以友好的方式定义它们?重写它们有什么问题?对不起,关于这一点。最后,我决定为每个人安排一条不同的路线。但我将此标记为正确答案,只需要找出如何使其在惰性加载下工作。但是我不再需要它了。@doorman如果你做了不同的路由,那么你就不需要.resetConfig(),只需要使用文档中描述的路由保护