基于服务响应的模块的角路由

时间:2018-11-29 05:18:17

标签: angular angular5 angular-routing angular-router

对于Angular 5,我在路由上遇到了麻烦。我的要求是,页面加载后,Student user将立即重定向到Students pageTeacher user应该重定向到{ {1}}。

为此,我必须在页面加载后立即进行服务调用,然后确定要路由到的模块。谁能指导我如何实现此方案?任何链接/线索都将有所帮助。

2 个答案:

答案 0 :(得分:0)

在主要组件中,您可以添加ngOnInit生命周期,然后加载数据。然后,根据参数,您可以重定向到所需的任何页面。例如-

  ngOnInit() { 
    this.yourService.GetData()
        .subscribe(data => {
            if(data.id === student){
                this.router.navigate(['/student']);
            }else{ 
                this.router.navigate(['/Teacher']);
            }
        });
  }

将路由器服务添加为构造函数中的依赖项注入。

答案 1 :(得分:0)

您可以使用canActivate根据条件浏览网址。

path: 'admin',
component: AdminComponent,
canActivate: [RoleGuard],
data: {role: 'Admin'}