我们有一个超级管理员和组织管理员级别的控制台。当您以超级管理员身份登录时,我希望路由/进入超级管理员模块。
[super admin]
+ [Organisations]
+ [Users]
+ etc..像/organisations/list和/organisations/Apple/posts这样的路线将在“进入”一个组织时实现。
当您以组织管理员身份登录时,根/应加载组织模块。
[org admin]
+ [Posts]
+ [Users]
+ [Events]
+ etc.我遇到的问题是,我想使用URLMatcher来允许基于授权在同一路径上加载2个模块。为此,我必须能够将身份验证服务注入到可能的URLMatcher函数中。
在评估路由时,似乎会首先处理UrlMatcher。使用Resolver是没有帮助的,因为这会在之后发生。我能做的唯一真正的事情就是访问LocalStorage并解码JWT来获得授权信息,但在我看来这似乎很麻烦。
目前,我唯一的解决方案是为超级管理员提供自己的路径/admin/,为组织管理员提供根/。虽然不是世界末日,但如果能对UrlMatcher有更多的控制就太好了。
有什么建议如何解决这个问题吗?
发布于 2019-11-29 08:05:57
我现在的想法是创建一个包装器路由;
{
path: '',
component: WrapperComponent
}WrapperComponent可以根据身份验证显示相关视图。
WrapperComponent
<super-admin *ngIf="role == 'superAdmin'; else orgAdmin"></super-admin>
<ng-template #orgAdmin>
<org-admin></org-admin>
</ng-template>https://stackoverflow.com/questions/59097300
复制相似问题