这个问题一般是因为没有正确导入所需的模块而引起的。可以通过在模块中导入‘Router’服务来解决这个问题。例如:
import { Injectable } from '@angular/core'; import { CanActivate, Router } from '@angular/router';
@Injectable() export class AuthGuard implements CanActivate {
constructor(private router: Router) {}
canActivate() { if (/* 确定用户是否登录 */) { return true; }
// 如果用户未登录,将其重定向到登录页面 this.router.navigate(['/login']); return false; } }
在上面的示例中,我们导入了‘Router’服务并将其注入到AuthGuard中。这样AuthGuard就可以在用户未登录时使用路由重定向用户到登录页面。
在使用CanActivateFn函数时,确保在它的参数中注入‘Router’服务。这样就能够解决Angular Inject()函数未向CanActivateFn提供路由器的问题。