Angular2 Router CanActivate,带参数?
Angular2 Router CanActivate, with Parameters?
我在这个特定问题上看到了一些问题。
我最近只在做 angular2 项目。无论如何,我现在正陷入一个问题。在已弃用的路由器中,我在路由的数据部分添加了我的用户角色,我已经覆盖了 routerOutlet,因此我可以在激活路由之前检查这个值。
目前我们可以符合CanActivate Class/Interface行w/e我们可以调用它。
现在我希望能够为这样的 CanActivate classes 提供权限(我已经将其放入枚举中)。在我只是通过访问我的 SessionService 来检查用户是否已登录之前,我现在需要检查用户是否具有某些权限。
正如我现在看到的那样,我必须实现一个新的 class,它为每个权限实现 CanActivate。现在这意味着我有 7 个。然而,我们正处于这个确切项目的早期阶段,我可以在不考虑太多的情况下将其改进到 11 个。
我能看到的是一个实现,每个这样的 canActivate 实现只会花费我大约 3 - 5 行。但是,如果我可以提供属性或参数,我会感觉更有帮助。
不考虑我必须实施 class 的情况,例如:
CanActivateIfUserHasPermissionsViewContentAndViewUsers 或更长。
请注意,在我的情况下,权限基本上是多项操作。点赞查看所有内容元素,或编辑所有内容等
所以我没有找到用参数实现 CanActivate 的方法。
不过,我确实找到了一个现在对我来说似乎还不错的解决方法。
我有一项服务,可以在其中将我的路线加载到模块构造上。 (我只是在模块的构造函数中添加它)。
我的路线现在包含数据 { 权限:[我的值在这里] }。在 canActive 挂钩中检查了哪些,因为 canActivate 实现也使用相同的服务。
我的解决方案基于我对另一个问题的讨论:
我在这个特定问题上看到了一些问题。
我最近只在做 angular2 项目。无论如何,我现在正陷入一个问题。在已弃用的路由器中,我在路由的数据部分添加了我的用户角色,我已经覆盖了 routerOutlet,因此我可以在激活路由之前检查这个值。
目前我们可以符合CanActivate Class/Interface行w/e我们可以调用它。
现在我希望能够为这样的 CanActivate classes 提供权限(我已经将其放入枚举中)。在我只是通过访问我的 SessionService 来检查用户是否已登录之前,我现在需要检查用户是否具有某些权限。
正如我现在看到的那样,我必须实现一个新的 class,它为每个权限实现 CanActivate。现在这意味着我有 7 个。然而,我们正处于这个确切项目的早期阶段,我可以在不考虑太多的情况下将其改进到 11 个。
我能看到的是一个实现,每个这样的 canActivate 实现只会花费我大约 3 - 5 行。但是,如果我可以提供属性或参数,我会感觉更有帮助。
不考虑我必须实施 class 的情况,例如:
CanActivateIfUserHasPermissionsViewContentAndViewUsers 或更长。
请注意,在我的情况下,权限基本上是多项操作。点赞查看所有内容元素,或编辑所有内容等
所以我没有找到用参数实现 CanActivate 的方法。
不过,我确实找到了一个现在对我来说似乎还不错的解决方法。 我有一项服务,可以在其中将我的路线加载到模块构造上。 (我只是在模块的构造函数中添加它)。
我的路线现在包含数据 { 权限:[我的值在这里] }。在 canActive 挂钩中检查了哪些,因为 canActivate 实现也使用相同的服务。
我的解决方案基于我对另一个问题的讨论: