56得票4回答
如何优雅地从ActivatedRouteSnapshot获取完整的URL?

在我的一些Angular路由守卫中,我希望设置“下一个”路径,在成功登录后重定向到该路径。 因此,普通的守卫canActivate函数签名如下: public canActivate(route: ActivatedRouteSnapshot): Observable<boolean...

17得票4回答
Angular 4多个守卫 - 执行顺序

我在应用程序中有两个守卫,AuthGuard和AccessGuard。 AuthGuard保护所有页面,如其名称所示,并将会话对象存储在GlobalService中,而AccessGuard则依赖于由AuthGuard在GlobalService中存储的会话对象中的某些访问数据。 问题在于当...

14得票4回答
Angular 5/6:如何在不重定向到错误路由的情况下保护路由(路由守卫)

我有一个棘手的问题。 我正在使用路由守卫(实现CanActivate接口)来检查用户是否被授予访问特定路由的权限: 我正在使用路由守卫(实现CanActivate接口)来检查用户是否被授权访问特定路由:const routes: Routes = [ { path:...

12得票1回答
路由守卫导致错误的路由导航行为

我在尝试浏览不同路由时遇到了问题。我有两个不同的路由模块。app.routes.ts:只包含LoginPage: export const routes: Routes = [ { path: 'login', component: LoginPageComponent,...

11得票2回答
在Angular中,惰性加载的子路由会加载两次

我面临以下问题:通过 AuthGuard 服务保护的 个人 部分在导航到它或通过浏览器刷新时会加载两次。第二次加载时,如果我提供任何查询参数,它会剥离 URL 的查询参数。这是我的应用程序路由器配置: const routes: Routes = [ { path: 'searc...

10得票4回答
按顺序执行多个异步路由守卫

我知道当canActivate函数返回一个简单的boolean时,angular路由守卫按指定顺序执行,但是如果守卫返回类型为Observable<boolean>或者Promise<boolean>呢? 在路由中的示例:{ path: 'confirm', ...

9得票1回答
使用惰性加载模块并使用第二个canActivate守卫时,路由器进入了无限循环。

我有一个使用了懒加载模块的 Angular 4.3.6 应用程序。以下是部分根路由: const routes: Routes = [ { path: '', redirectTo: 'fleet', pathMatch: 'full' }, { path: '', ...

9得票2回答
在Angular 5中,等待Guard内的http请求

我正在使用Angular应用程序中的Guard来解决初始关键数据。在Angular 4版本中,我是这样做的: // app.routing.ts routing = [{ path: '', component: AppComponent, canActivate: [Resolve...

8得票1回答
canDeactivate出现问题: "类型'CanDeactivate'不是泛型"

我正在尝试在Angular 7中设置一个简单的canDeactivate保护,我已经尝试了许多在线教程的代码,但它们都产生了同样的错误: "类型'CanDeactivate'不是泛型。" 我做错了什么?除了另外一个两年前未被回答的问题之外,我甚至无法在任何谷歌搜索结果中找到这个错误。 ...

8得票3回答
如果满足特定条件,如何停止Observable链的传播

介绍 我正在尝试使用共享服务中使用的 Observable 创建一个路由守卫,该服务保存当前用户角色的字符串值。 问题显然在于我需要从 Promises 身上解放出来,改为使用 Observables。 到目前为止,我所做的都是基于试错法和启发式方法,但我因此遇到了无法解决的问题 感谢 ...