Javascript angular应用程序启动时路由到不同组件

Javascript angular应用程序启动时路由到不同组件,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个有棱角的应用程序。 当用户登录时,我希望根据用户的角色显示不同的UI。 用户可以只是客户或管理员 在我的路由模块中,我有以下内容 {path: '', redirectTo: 'admin-portal' , pathMatch: 'full'}, {path: 'admin-portal', component: AdminPortalComponent, canActivate: [AuthGuard]}, {path: 'custom

我有一个有棱角的应用程序。 当用户登录时,我希望根据用户的角色显示不同的UI。 用户可以只是客户管理员

在我的路由模块中,我有以下内容

        {path: '', redirectTo: 'admin-portal' , pathMatch: 'full'},
        {path: 'admin-portal', component: AdminPortalComponent, canActivate: [AuthGuard]},
        {path: 'customer-portal', component: CustomerPortalComponent, canActivate: [AuthGuard]}

我希望能够从本地存储中获取一个变量,并使用它来决定在加载应用程序时将用户重定向到何处。我正在考虑设置一个条件,例如
{path:'',重定向到:1===1?'admin portal':'customer portal',pathMatch:'full'}

您创建了另一个防护,并将条件放入其中

    @Injectable()
    export class LoadGuard implements CanActivate {
      constructor(private router: Router) {

      }

      canActivate(next: ActivatedRouteSnapshot,
                  state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
        if(1===1){
           this.router.navigate(['admin-portal']);
           return false;
         }else{
           this.router.navigate(['customer-portal']);
           return false;
        }

      }
    }

您创建了另一个防护,并将条件放入其中

    @Injectable()
    export class LoadGuard implements CanActivate {
      constructor(private router: Router) {

      }

      canActivate(next: ActivatedRouteSnapshot,
                  state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
        if(1===1){
           this.router.navigate(['admin-portal']);
           return false;
         }else{
           this.router.navigate(['customer-portal']);
           return false;
        }

      }
    }

您正在寻找一个
路由保护
,它执行一个检查并被绑定到路由器中cycle@Z.Bagley你有一个简单的例子吗?你正在寻找一个
路线守卫
,它执行一个检查并被绑定到路由器中cycle@Z.Bagley您有一个简单的示例吗?我使用了您的解决方案,但收到了以下错误:“错误:路由“”的配置无效。必须提供以下选项之一:组件、重定向到、子级或loadChildren”。我通过提供组件更新了答案。但是在这种情况下,它不会加载这个组件,因为我们在LoadGuard中加载了不同的组件。。但我们应该在路由路径中按预期提供一个组件。我使用了您的解决方案,但收到了以下错误:“错误:路由“”的配置无效。必须提供以下之一:组件、重定向到、子级或loadChildren”。我通过提供该组件更新了答案。但是在这种情况下,它不会加载这个组件,因为我们在LoadGuard中加载了不同的组件。。但是我们应该在路径中给出一个组件。