问题标签 [angular-route-guards]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2457 浏览

angular - ngOnDestroy 在退出前警告用户

我试图找到一种在退出屏幕之前提醒用户的方法。如果他们按“否”,那么它不应该破坏。如果他们按“确定”,则继续进行销毁操作。

ngOnDestory 是否有在 ngOnDestory 之前发生的事件?例如 ngOnBeforeDestroying?

我目前正在使用 Angular 4 进行开发。

0 投票
1 回答
832 浏览

angular - 子页面中的 Angular 2 路由问题

我是新的 Angular 2 开发。我添加了一个组件,在这个组件内我还有一些其他的子组件。我的文件夹结构如下:

parentComponent.html我添加<router-outlet></router-outlet>

我有从 child1 到 child 2 和 child 2 到 child3 的导航。我也可以向后移动,反之亦然。搬回来我正在使用 this._location.back();.

当我使用后退按钮向后移动时。它显示当前路线中的上一页组件。

例如 :

当我使用后退按钮从 child2 移动到 child1 时。child1 路线仍在 child1 页面中显示子 html 部分。

对于路由,我使用的是这样的:

我不知道为什么会这样。请帮忙!!

版本信息

0 投票
0 回答
805 浏览

angular - Angular 2 Guards:canLoad() 是否有任何原因触发两次?

canLoad 在拒绝或接受时触发两次

canLoad 实现

调用的服务方法

假设 Observale 布尔响应将被返回

0 投票
1 回答
1879 浏览

javascript - 如何将路由保护应用于功能模块路由模块?

所以,我正在构建一个 Angular 4 应用程序,我希望所有路由都受到保护(当然登录路由除外)。我正在尝试使用功能模块和功能模块路由。所以,想象一下这样的事情:

,对于根模块,然后是用户功能模块路由配置,例如:

什么是最好的方法:

  • 继续使用功能模块路由,并且
  • 将路由保护应用于用户功能模块路由而不复制 canActivate 保护?有什么方法可以将它从根路由模块传递给用户功能模块路由?

谢谢,
伊拉克利斯

0 投票
1 回答
1735 浏览

angular - Angular Route Guards:Or vs. And

我正在使用路由保护来保护我的 Angular 应用程序的前端。在过去与他们合作并在线研究时,为一条路线添加多个守卫要求所有守卫都返回 true 以允许访问。

但是如果我只想要一个返回 true 以允许访问呢?(像 || 而不是 &&)

例如,我的路由守卫在用户的令牌中查找某些角色:

如果我要将它们正常组合在路由器模块中,它将类似于...

{path: "someroute", component: SomeComponent, canActivate: [ActiveRouteGuard, AdminRouteGuard]}

...但这将要求用户既是Active又是Admin. 但是,如果我想强制执行 beingActive和ana怎么办?Admin Manager

像这样在 API 上强制执行很简单

但我如何在 Angular 中做到这一点?

0 投票
3 回答
593 浏览

angular - 路由守卫:如何转换 Observable进入 Observable

如何将 Observable<Response> 转换为 Observable<boolean>。这是在路线守卫内。

代码:

不工作。我不明白错误信息:

编辑

在浪费了 1 小时试图理解错误消息后,我改用了这个。似乎工作:

0 投票
2 回答
1412 浏览

angular - 根据条件禁用路由器导航链接

如何router.navigate根据状态禁用链接或链接?

如果状态为“否”,那么我不能键入链接来编辑材料?

HTML

TS

0 投票
1 回答
1405 浏览

angular - Conditionally load modules in Angular 4

Is there any way to load module conditionally or prevent module access in some conditions? I just want to load modules and its subroutes only a specific condition satisfied.

The possible solution I tried till now

  1. Lazy load modules with routing details.
  2. canActivate with auth mechanism service.

Is there any effective way to achieve the same so that.

  1. Common features should not be duplicated.
  2. Module with routing details should be only loaded when in need.

Any help in this regard appreciated TIA.

0 投票
1 回答
255 浏览

angular - Angular 4子路由始终包含来自父级的参数

我有一个 Angular 4 webapp,它目前托管一个多租户站点。

一个示例网址将类似于

我已按如下方式设置我的路线,以让自己成为“租户守卫”,确保在尝试渲染路线之前始终拥有此属性

我想要确保我的路由器链接始终包含租户。

目前,我的导航组件看起来像

但是,单击“受保护”实际上会将我发送到

如何在我的子组件上设置任何链接以包含父路由中的租户参数?

我考虑的一种方法是传递是ActivatedRoute从我的子组件周围传递服务并在组件内构造 url。

不过,这似乎有点低效,有没有另一种方法可以做到这一点而不在每个组件中都包含路由器?

0 投票
0 回答
549 浏览

angular - Angular - 我无法让 canDeactivate 与我的模式一起使用路线

设想:

技术:使用 typescript 和 webpack 的 Angular 版本 5 应用程序。

我做了一个canDeactivate 守卫来查看用户是否想离开当前路线。

当用户尝试导航到另一条路线时,需要出现我展示的自定义模式。

然后用户在模式中单击“是”(例如,我想离开)。

问题:

我的警卫服务很好,但模式方法“canDeactivate”没有受到打击。因此模态不会打开。

我已将自定义模式组件添加到 html。

我已经将警卫和模态添加到应用程序模块中。

这些是我下面的文件

停用GuardService:

我的自定义模式:

设置了 canDeactivate 的路由: