gpt4 book ai didi

Angular 9 : The class cannot be created via dependency injection, 因为它没有 Angular 装饰器

转载 作者:行者123 更新时间:2023-12-01 21:41:31 25 4
gpt4 key购买 nike

这个错误让我难以自拔。我有一个 authguard 服务,如此处所示。无论我做什么,编译器都会给我这个错误

'
Either add the @Injectable() decorator to 'AuthGuard', or configure a different provider (such as a provider with 'useFactory').

'

   @Injectable({ providedIn: 'root' })
export class AuthGuard implements CanActivate {
constructor(private myService: MyService,
private router: Router)}

我正在我的 app.module 中实现它

providers: [  
AuthGuard
]
bootstrap: [AppComponent]
})
export class AppModule { }

我显然在 Authguard 类之上有可注入(inject)装饰器,但我仍然遇到此错误。这只发生在我从 Angular 8 升级到 9.1 时这是 VS Code 或编译器的某种错误吗?

最佳答案

您正在从两个地方注册相同的依赖项

首先是 @Injectable({ providedIn: 'root' })。您正在使用此语法向根注入(inject)器注册 { providedIn: 'root' }

下面第二个是你重新注册,这是你出错的原因。

providers: [  
AuthGuard
]

只需将其从 providers 数组中删除即可解决您的问题。

关于Angular 9 : The class cannot be created via dependency injection, 因为它没有 Angular 装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61330891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com