我正在关注从Angular Guard开始的Angular 的doctor

以下是我的来宾警卫代码.逻辑是判断用户是否有空,

如果可用,重定向到仪表板,否则进入登录页面.

import { CanActivateFn } from '@angular/router';
import { Injectable } from '@angular/core';


@Injectable()

class PermissionsService {
  canActivate(): boolean {
    return false;
  }

}

export const guestGuard: CanActivateFn =  (route, state) => {
  return inject(PermissionsService).canActivate();
};

但此代码会抛出错误,因为

[ERROR] TS2304: Cannot find name 'inject'. [plugin angular-compiler]

src/app/guards/guest.guard.ts:15:13:
  15 │       return inject(PermissionsService).canActivate();

推荐答案

您需要从@angular/core导入inject().

Angular相关问答推荐

Angular 动画—淡出适用于DIV,不完全适用于子组件

Angular Signal只指一种类型,但这里用作值.ts(2693)''

有没有其他代码可以用函数的方式写成Angular ?

如何防止打印后的空格后的HTML元素的Angular ?

Angular 17+独立配置中main.ts bootstrap 调用的最佳实践

Angular 显示来自文字数组的SVG路径

Angular 懒惰地加载一个服务

如何以Angular 解析表单控件名称的无值访问器?

当try 关闭浏览器选项卡时显示alert 时,我是否可以捕获用户是否取消警告

有角.服务.模块构建失败.无法读取未定义的属性(读取文件)

使用 Observable 进行渐进式填充

带有Angular 中断的进度条

Angular combinelatest使用没有初始值的主题

angular 13 ng 构建库失败(ivy部分编译模式)

为什么 HttpParams 在 Angular 4.3 中的多行中不起作用

错误 TS1086:无法在 Angular 9 的环境上下文中声明访问器

使用 Jasmine 和 Karma 对 Angular 进行单元测试,错误:无法绑定到xxx,因为它不是xxxxxx的已知属性.

使用 DomSanitizer 绕过安全性后,安全值必须使用 [property]=binding

在Angular 6 中找不到 HammerJS

Angular CLI 为已经存在的组件创建 .spec 文件