如何通过guard angular2隐藏链接

2024-04-27

如何在视图 html 中隐藏管理链接。我必须守护:管理员和经理

路由器配置:

{
   path: 'manager',
   component: ManagerComponent,
   canActivate: [ManagerGuard]
},
{
   path: 'user',
   component: UserAdminComponent,
   canActivate: [AdminGuard]
}

视图中:

 <li>
    <a routerLink="/user" routerLinkActive="active-link">User</a>
 </li>

我想隐藏 ManagerGuard 的 /user 上的链接,但显示 AdminGuard 的链接。


另外,如果已经以可能有帮助的方式回答,我在这里使用了另一种方法。由于您已经在 Guard 中拥有 canActivate 方法,因此您还可以使用该 Guard 注入导航组件,并且可以直接调用这些 canActivate 方法:

在包含导航的组件中

constructor(private adminGuard: AdminGuard)

然后在模板中

<li *ngIf="adminGuard.canActivate()">
  <a routerLink="/user" routerLinkActive="active-link">User</a>
</li>

Edit

在我的情况下,这在生产模式下不起作用(如果您使用必须注入的参数)。我只是尝试编译它,但角度抱怨缺少参数。如果您不使用参数,则效果很好,或者,如果您不在函数中使用参数 - 那么只需传递

<li *ngIf="adminGuard.canActivate(null,null)">
  <a routerLink="/user" routerLinkActive="active-link">User</a>
</li>

另一件事:如果您在模板中使用像上面的“adminGuard”这样的变量,则它必须是公共的 - 而不是私有的。

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

如何通过guard angular2隐藏链接 的相关文章

  • 导入角度组件以在所有模块中可用

    我最近开始使用 Angular 2 到目前为止我的体验非常棒 我有一些很好的经验ng1 and React以及 所以 这更像是一个普遍问题 也是一个困惑 我很确定这会帮助很多其他人 但我还没有真正找到任何直接的答案 所以假设我有这个modu
  • Angular2 Safari 后退按钮

    在实际的 Angular2 beta 14 及之前的版本 中 Safari 实际上使用 9 1 上的后退按钮 使用路由和多个视图时 似乎存在问题 https github com angular angular issues 7722 ht
  • Angular 2 参数更改时重新加载路线

    我目前正在编写我的第一个 Angular 2 应用程序 我有一个概述组件 它具有以下简单模板 div class row div class col lg 8 div div
  • Angular 2/4 如何获取应用程序组件中的路由参数?

    As I am new to angular 2 4 I am having trouble setting up a new application as per my need 我正在尝试构建一个应用程序 该应用程序将从另一个应用程序中
  • Angular2目标特定路由器出口

    我有一个应用程序 它有一个基本路由器插座 用作整个应用程序的基础 然后是一个子路由器出口 用户登录后使用该子路由器出口来显示由于单击基于基本路由器出口的导航链接而加载的任何组件 我希望在基本模板中单击导航链接时能够定位子路由器出口 当我单击
  • Angular2:如何使用路由器“重新加载”页面(重新检查canActivate)?

    我有路由器canActivate AuthGuard 和里面的验证AuthGuard 如何强制检查canActivate在同一个路由器 url 中 例如 当前路线是 admin我有类似的事件session expired 我有会话签入Aut
  • 在 Angular 4+ 中处理两个 URL(矩阵 && 查询)参数

    目前我们在我的 Angular 4 应用程序中使用矩阵参数 Google Analytics 在读取 URL 时出现问题 所以我们决定将其更改为查询参数 然而 旧的符号 矩阵 必须可访问并重定向到新的符号并将此类事件保存到数据库中 我看到三
  • 如何在 Angular 2 中重新加载分页页面? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何重新加载 Angular 2 上的当前页面 如果 iam 在第 2 页 分页 并刷新页面 它将显示第 1 页 URL 页面加载 但我想刷
  • 如何使用 Angular2 路由

    我正在尝试编写一个单页应用程序 但无法使路由正常工作 我尝试使用许多教程 但考虑到 Angular2 仍处于测试阶段 它们似乎很快就过时了 似乎只要我添加对路由器指令或路由器配置或路由器提供程序的任何引用 该应用程序就会停止工作 并且浏览器
  • 传递参数 Angular 2 传统方式

    我正在尝试以这种格式将参数传递给一个组件www domain com param value 但是 Angular 不断发送这样的参数www domain com param value 为什么要更换 for 这是我的路线配置 const
  • “没有 AuthGuard 提供商!”在 Angular 2 中使用 CanActivate

    EDIT 显然这已经过时了 现在你在providersNgModule 中的数组 查看其他答案或官方文档以获取更多信息 组件上的引导已经过时了 provideRouter 也已经过时了 我正在尝试使用 Angular2 指南中的登录名和 A
  • 具有多个命名出口的延迟加载模块上的 Angular2 路由

    我在 Angular2 中遇到了路由问题 我的模块是延迟加载的 但到目前为止基本的 loadChildren 方法没有问题 模块本身正在加载 在开发工具的网络选项卡中看到 我的问题 请参阅下面我的路由代码 第一个版本工作正常 当我创建到 的
  • Angular 2 应用程序基础 href 与 Cordova IOS

    我正在使用 Angular 2 和 cordova 开发一个应用程序 我使用 Angular cli 来构建应用程序 我现在在 IOS 应用程序启动时遇到了一些路由问题 基本href似乎设置错误 如果我使用以下命令设置基本 href 应用程
  • Angular 2 @angular/router 3.0.0-alpha.7 - 访问多个参数

    我只是在尝试最近发布的 Angular 2 中的新路由器 即 Angular 2 angular router 3 0 0 alpha 7 我知道在新路由器中我们可以使用以下代码访问路由参数 this activatedRoute para
  • Angular 2 可以沿着路由器传递复杂的对象吗?

    是否可以通过路由器发送复杂的对象 这是我正在做和尝试做的事情 在搜索页面中 用户可以单击结果之一上的按钮 该按钮将调用导致该行触发的方法 this router navigate profile detail selection The s
  • Angular 2:路由参数更改,重新加载同一页面?

    我有一个带有参数的路由 当转到页面 users 123 时 其中 123 是调用 ngOnInit 的参数 我获取我的参数并调用我的方法来获取用户 但是 当我在该页面上单击第二个链接 users 456 时 将不再调用 ngOnInit 因
  • Angular 2.0.0-rc3:与 routerLinkActive 匹配的部分路由

    我在用着routerLinkActive在我的主要路由中 a Bob a 当网址为 user the active类将被添加到a标签 但是在主路由下 我还有一些辅助路由 所以 当网址为 user aa 活动将被删除 我希望当 URL 是 u
  • Angular routerLink没有导航到相应的组件

    我在 angular2 应用程序中的路由运行良好 但我将根据以下内容制作一些routeLinkthis https angular io docs ts latest guide router html 这是我的路由 const route
  • 无法匹配任何路线。 URL 段:'':尝试使用子路由和 Ng2 时

    I have 以下笨蛋 https plnkr co edit PHaGNtfa0fPBgET4NEpZ p preview 这是行不通的 为了让它发挥作用 我可以评论 RouterModule forRoot path component
  • Angular 2可以通过路由参数传递对象吗?

    我可以使用一些建议来解决我面临的这个问题 为了尽可能地向您解释这一点 我创建了一个主要组件 Component selector main component providers FORM PROVIDERS MainService Mai

随机推荐

  • 调试严重的 SIGILL 崩溃:文本段损坏

    我们的系统是基于 PowerPC 的运行 Linux 的嵌入式系统 我们遇到了随机的 SIGILL 崩溃 这种情况在各种应用程序中都会出现 崩溃的根本原因是将要执行的指令归零 这表明内存中的文本段已损坏 由于文本段是以只读方式加载的 因此应
  • openpyxl 图表误差线样式

    我被分配了一项 简单 的任务 即将一系列数据列收集到结果工作簿中 结果工作簿包含分析结果所需的公式和图表 这些数据是由我用 python 编写的图像分析应用程序生成的 作为一系列 Excel 工作簿 现在的问题是 openpyxl 会删除
  • 如何验证当前用户 ASP.net mvc Identity

    当用户访问我的网站时 他们会看到登录页面 一旦他们成功登录 他们就可以注销并且其他用户可以登录 但是 如果用户在登录时单击后退按钮 则会转到登录页面 此时新用户无法再登录 我收到防伪令牌错误 我尝试注销任何进入登录页面的用户 我尝试过不同的
  • 在 CodeIgniter 会话中存储具有相同名称的多个输入

    我已经发布了这个在 CodeIgniter 论坛中 http codeigniter com forums viewthread 155508 并且也耗尽了论坛搜索引擎 所以如果交叉发帖不被允许 我们深表歉意 本质上 我有一个输入 设置为
  • 如何将基于 Qt4.6 Phonon 的媒体应用程序移植到 Qt 5.1?

    我有一个基于 Qt 4 6 的应用程序 它使用 QtWebView 加载带有标签的 HTML 页面 以便在 Windows 平台上播放网络多媒体源 我没有使用默认的 PHONON 播放引擎 而是构建了另一个 PHONON 后端引擎来处理媒体
  • 帮助手册中的锚点不起作用

    我已经仔细检查了所有内容 希望有人能发现我没有看到的愚蠢错误 我正在尝试为我的应用程序构建一个 Apple 帮助部分 它可以正确地转到登录页面 但是没有一个锚点起作用 登陆页面称为index html另一个页面称为test html它位于p
  • 如果相机平移也在 Z 方向,单应性在平面场景的两个图像之间是否成立?

    我正在尝试计算两个图像之间的相对姿势 并且我正在使用单应性来过滤特征匹配 我有一个相当平面的场景 只要两个图像之间的平移仅限于 X 和 Y 轴 opencv 约定 基于单应性的相对姿态估计就可以非常准确地工作 一旦我开始使用另一个相机沿 Z
  • .NET Core:Process.Start() 留下 子进程

    我正在构建一个部署在 CentOS 7 2 上的 ASP Net Core netcore 1 1 应用程序 我有一个通过 System Diagnostics Process 调用外部进程 也是使用 net core 构建的控制台应用程序
  • iOS/MacOS 框架中是否有为 CFBundleShortVersionString 定义的常量

    我知道 CFBundleVersion plist 键有一个常量 定义为kCFBundleVersionKey在 CoreFoundation 的 CFBundle h 标头中 但是 CFBundleShortVersionString 有
  • 可以用Java开发iPhone应用程序吗?

    无意间看到这样的广告 http monotouch net DownloadTrial ref so1 http monotouch net DownloadTrial ref so1 然后我开始怀疑 Java 中是否有类似的东西 据我了解
  • 是否可以通过 URL 调用 Web API 来获取实时数据?

    假设您有一个 ASP NET MVC 4 Web API 项目 当您通过 URL 调用其中一个资源时 它会等待获取指定时间段的性能监控数据 然后在完成后以 JSON 形式返回所有数据 但是 在输入 URL 和过程完成之间 是否有一种方法可以
  • 我们是否需要更喜欢构造函数而不是静态工厂方法?如果是的话,什么时候?

    我一直在阅读有效的Java by 约书亚 布洛赫到目前为止 它确实名副其实 第一项就提供了令人信服的理由静态工厂方法 over 构造函数 以至于我开始质疑那些好的旧构造函数的有效性 本书的优点 缺点总结如下 优点 他们有名字 我们拥有全面的
  • Predict() - 也许我不理解它

    I 今天早些时候发布 https stackoverflow com questions 9026383 error in predict关于我使用时遇到的错误predict功能 我能够纠正这个问题 并认为我走在正确的道路上 我有许多观察结
  • TFS2012错误的用户丢失工作区

    我的 TFS2012 有一个非常不寻常的问题 我们刚刚跨域迁移并从 TFS2010 升级到 TFS2012 一切似乎都与一个用户无关 我们似乎无法让他的工作空间正常工作 当我连接到 TFS 服务器时 我输入服务器名称和端口号 这会连接 但在
  • 如何向 CellList 添加或删除单个元素?

    如何添加 删除单个元素CellList http google web toolkit googlecode com svn javadoc 2 1 com google gwt user cellview client CellList
  • 在github上打开时如何更改Visual Studio的版本

    我有VS2015和VS2017 当我在 GitHub 上选择 在 Visual Studio 中打开 时 我想将其更改为使用 VS2017 而不是 VS2015 我怎样才能做到这一点 通过另一个问题找到了答案 使用 github 时 找不到
  • 在 Neo4j 中可视化连接的组件

    我可以使用下面的代码找到图中最密集连接的组件 CALL algo unionFind stream pnHours YIELD nodeId setId groupBy setId storing all node ids of the s
  • 如何同时(并行)调用远程计算机上的相同功能

    我正在编写一个脚本 该脚本具有多个需要时间在不同远程计算机上执行的函数 有什么方法可以以并行方式同时调用命令它们吗 举个例子将不胜感激 谢谢 Invoke Command已经对每台计算机并行执行调用 作为内置功能的一部分 https tec
  • 如何从 AngularJS 中的自定义指令 * 具有自己的作用域 * 访问父作用域?

    我正在寻找访问指令中 父 范围的任何方式 范围 嵌入 要求 从上面传入变量 或范围本身 等的任何组合 我完全愿意竭尽全力 但我想避免一些完全hacky或无法维护的东西 例如 我知道我现在可以通过采取 scope从 preLink 参数并迭代
  • 如何通过guard angular2隐藏链接

    如何在视图 html 中隐藏管理链接 我必须守护 管理员和经理 路由器配置 path manager component ManagerComponent canActivate ManagerGuard path user compone