Angular 9:无法通过依赖项注入创建类,因为它没有Angular装饰器

问题描述 投票:0回答:1

此错误使我无法自拔。我有一个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类之上具有可注射装饰器,但仍然收到此错误。这仅在我从Angular 8升级到9.1时发生这是VS Code或编译器之类的错误吗?

angular
1个回答
0
投票

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

首先是@Injectable({ providedIn: 'root' })您正在向根注入器注册。

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

providers: [  
    AuthGuard
]

只需将其从提供者数组中删除,它将解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.