Angular2路由器可以激活,带参数吗?

2023-12-24

我已经看到了关于这个具体问题的一些问题。

我最近只从事 Angular2 项目。无论如何,我现在遇到了一个问题。在已弃用的路由器中,我在路由的数据部分添加了我的用户角色,我覆盖了 routerOutlet,以便我可以在激活路由之前检查此值)。

目前,我们可以符合 CanActivate 类/接口行,我们可以调用它。

现在我希望能够向此类 CanActivate 类提供权限(我已将其放入枚举中)。在我只是检查用户是否通过访问我的 SessionService 登录之前,我现在需要检查用户是否具有某些权限。

正如我现在所看到的,我必须实现一个新类,它为每个权限实现 CanActivate。现在这意味着我有 7 个。然而,我们正处于这个项目的早期阶段,无需太多考虑,我可以将其改进为 11 个。

我眼前看到的是一个实现,每个这样的 canActivate 实现只需要大约 3 - 5 行代码。然而,如果我可以提供属性或参数,我会觉得更有帮助。

不考虑我必须实现这样的类的情况:

CanActivateIfUserHasPermissionsViewContentAndViewUsers 甚至更长。

请注意,在我的情况下,权限基本上是多个操作。例如查看所有内容元素,或编辑所有内容等。


所以我没有找到一种方法来使用参数实现我的 CanActivate 。

不过,我确实找到了一个现在对我来说似乎不错的解决方法。 我有一项服务,可以在模块构造中加载我的路线。 (我只是将其添加到模块的构造函数中)。

我的路线现在包含数据 { 权限:[此处的我的值] }。这是在 canActive 挂钩中检查的,因为 canActivate 实现也使用相同的服务。

我的解决方案基于我对另一个问题的讨论:Angular2 RC5 跨模块提供程序/扫描 https://stackoverflow.com/questions/39036489/angular2-rc5-cross-module-provider-scanning

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular2路由器可以激活,带参数吗? 的相关文章

随机推荐

  • 如何优化带有重复子查询的大查询

    我有以下包含重复子查询的巨大查询 它对我来说看起来效率很低 我该如何优化它 SELECT T2 date1 T2 date2 T2 period T1 market T1 ticker 0 AS scenario FROM SELECT D
  • 动态字段上的 jQuery x-editable 插件?

    我制作了一个脚本 可以在单击按钮时添加动态输入 并使用相应的 x 按钮删除不需要的输入 我的需要是添加x 可编辑每个新创建的动态输入上的插件 我正在使用 x editable 以这种方式 在 x editable 弹出窗口中选择的选项上 右
  • Python odbc;如何查找odbc中的所有表

    有什么方法可以通过 odbc 连接获取所有可用表的列表 我必须从一路生成的表中获取数据 因此我事先不知道名称 在回答此问题时未指定 ODBC 驱动程序 From PyODBC 文档 http code google com p pyodbc
  • 如何在 Visual Basic 6 (vb6) 中使用 TLS 1.2 - REST

    APIGee https apigee com api management 正在将请求迁移到 TLS 1 2 操作系统 Windows Server 2003 我有一个用 vb6 开发的旧应用程序 但由于这次新迁移 它停止工作 这是我的代
  • 速度模板和 JavaScript

    我尝试将 javascript 添加到我的速度模板中 table tr td Name td td currency CurrencyName td tr tr td Jual td td div currency Buy div td t
  • openstacksdk如何更改当前用户密码

    我找到了CLI or API请求方法 它们对我有用 如下所示 source etc kolla admin openrc sh openstack user password set password newpsw original pas
  • 我如何使用 python 请求登录 instagram?

    你好 我正在尝试使用 python requests 库登录 Instagram 但是当我尝试时 Instagram 将我变成了 错误请求 有谁知道我该如何解决这个问题 我寻找解决这个问题的方法 但没有找到任何东西 请帮忙 谢谢 它正在工作
  • 错误:RenderBox 未布局,断言失败:第 1940 行 pos 12:“hasSize”

    我无法修复这个错误 RenderBox 未布局 RenderPointerListener 2b92a relayoutBoundary up9 需要绘制需要合成位更新 package flutter src rendering box d
  • 如何从单个父进程创建两个进程

    我知道我需要使用 fork 但这只会创建一个子进程 我是否只是从子进程中再次调用 fork 另外 我需要它们通过信号或管道进行通信 这更容易实现 并且我需要知道什么才能做到这一点 函数等 要创建第二个进程 请调用fork 再次 无论是在父级
  • Google Auth 在 Blazor 中获取访问令牌时出错

    我目前有一个带有 Blazor WASM 的 ASP Net Core Web Api 它可以使用组件 RemoteAuthenticatorView 成功登录 Google OAuth 我现在的目的是将我拥有的令牌传递给 Web api
  • 生成范围 (1,n) 但不在列表 (i,j) 中的数字

    如何生成在范围内的随机数 1 n 但不在某个列表中 i j 示例 范围是 1 500 列表是 1 3 4 45 199 212 344 注意 列表可能未排序 拒绝抽样 http en wikipedia org wiki Rejection
  • 使用 tslint 时如何忽略 *.d.ts 文件?

    我想将 tslint 添加到我的工作流程中 我通过以下方式安装它 npm install tslint tslint config ms recommended save dev And my tslint json好像 extends t
  • 如何序列化ArrayList中的对象?

    我想序列化一个数组列表Item但它不起作用 my Item类扩展Stuff类并有一些子类 我的所有类都实现了可序列化 我有这部分 try Serialize data object to a file ObjectOutputStream
  • Lua:获取网页

    我想获取一个网页并以字符串形式获取结果 但我不知道该怎么做 我在网上搜索并没有找到如何操作 我只想用Lua套接字 http w3 impa br diego software luasocket其中带有一个http子模块 http w3 i
  • 与 sklearn.neighbors.NearestNeighbors 的输出混淆

    这是代码 from sklearn neighbors import NearestNeighbors import numpy as np X np array 1 1 2 1 3 2 1 1 2 1 3 2 nbrs NearestNe
  • 如何安装CodeRush和Resharper? CodeRush 快捷方式丢失

    我正在尝试同时安装 CodeRush 和 ReSharper 安装 ReSharper 后 我的 CodeRush 快捷方式消失了 有谁知道如何在安装了 Resharper 的情况下恢复我的 CodeRush 短裤 这是我当前的设置 1 V
  • 当用户单击输入密码时,如何使用系统内置密码屏幕来验证我的应用程序

    我正在将 TouchID 集成到我的应用程序中 如何使用 输入密码 选项显示系统内置密码屏幕来验证我的应用程序 请任何人解释一下如何处理 Objective C 中的 LAErrorUserFallback 情况 你不能这样做 您可以做的是
  • Lambda 表达式无法工作,被终止

    使用 lambda 表达式编写 java 8 程序 它没有被执行 而是在 lambda 表达式处终止 没有例外 import java util ArrayList import java util List import java uti
  • 将一个或多个系数设置为特定整数

    我正在使用标准 lm 模型 并且希望将一个或多个变量的系数设置为特定整数 例如 我希望天气和价格变量的系数分别为 647 和 15 我正在使用带有标准公式的 lm 函数 到目前为止我发现的最接近的东西是glm中的offset函数 或者sys
  • Angular2路由器可以激活,带参数吗?

    我已经看到了关于这个具体问题的一些问题 我最近只从事 Angular2 项目 无论如何 我现在遇到了一个问题 在已弃用的路由器中 我在路由的数据部分添加了我的用户角色 我覆盖了 routerOutlet 以便我可以在激活路由之前检查此值 目