57得票5回答
Angular的"CanActivate"接口已被弃用。如何替换它?

我的 Angular 应用程序包含一个简单的 AuthGuard,如下所示,它一直没有问题。最近,我将 Angular 版本从15.1.4 升级到了 15.2.0,自那以后,我的 IDE 提示 CanActivate 和 CanActivateChild 都已弃用。 CanActivate ...

19得票5回答
如何使用Angular的canActivate来否定守卫的结果?

从Angular文档上来看,似乎只有在canActivate函数最终返回true时才能使用canActivate守卫允许进入路由。 是否有一种方法可以说“仅当canActivate类评估为false时才进入此路由”? 例如,不允许已登录的用户访问登录页面,我尝试了这个方法,但它没有起作用:...

10得票2回答
错误:Uncaught(在承诺中):TypeError:guard不是一个函数。

我正在使用Angular 4编写一个Authguard来防止未登录访问路由。但是,我遇到了这个错误。以下是来自Authgaurd和App模块中Routing的代码。请帮助解决问题。 //Authgaurd代码import { ActivatedRouteSnapshot, CanActiva...

9得票5回答
如果手动输入URL,Angular会刷新应用程序

我正在使用Angular 6,并且在路由更改方面遇到了问题。如果我使用routerLink或navigate()方法浏览应用程序,它可以正常工作,因为它只会加载新的模块(如有必要)。但是,例如,如果我在此链接中:localhost:8080/home,我单击URL,取消“home”,写入“pr...

8得票2回答
从守卫传递数据到组件

我的子路由组件正在从API中查询一些数据。目前,我正在组件中检查路由参数是否有效,方法是检查API返回的数据。 我认为这种做法不好,并希望将检查放在守卫中,在组件激活之前检查提供的参数是否有效。 但是,我也想节省时间和资源。这将需要两个API请求。因此,我想知道是否有可能从守卫传递数据到组...

8得票2回答
Angular:在每次路由更改时运行canActivate

最近我在处理Angular路由守卫时遇到了困难。CanActive只会在页面加载时运行一次,而不会在受保护的路由内部的路由更改时运行。我认为这是因为它过去每次更改都会运行,但从我在论坛上读到的内容来看,我应该使用CanActivateChild。问题是,我们的应用程序由几个模块组成,每个模块都...

7得票2回答
如何在Angular程序中将未知路由重定向到首页路由?

我有一个名为routes.ts的文件,内容如下: import { AuthGuardService as AuthGuard } from '../services/auth-guard.service'; export const routes:Routes = [ {path...

7得票1回答
Angular 2使用Promise调用远程服务的canActivate功能

首先,我不确定这是否是处理问题的最佳方法,但我正在寻找在“ /”上的路由守卫,该守卫检查用户是否已登录,如果已登录,则将其重定向到“ /dashboard”。我想在加载路由之前执行此操作,以避免屏幕闪烁,因为我们正在远程服务器上检查身份验证状态。 我正在实现canActivate接口,但它没...