没有提供Guard的ASP.NET Core Angular Spa项目JavaScriptServices

时间:2017-05-23 04:42:42

标签: javascript asp.net angular typescript asp.net-core

我收到错误: 没有AuthGuard提供商!

如果AuthGuard未在app.module中注册,通常会发生这种情况。在这种情况下,我在app.module.shared.ts

中注册了它

最新的JavaScriptServices Angular模板将app.module拆分为3 - app.module.shared.ts,app.module.client.ts,app.module.server.ts这可能就是为什么它表现得很奇怪。

还有什么可能导致此错误发生吗?我相信它只发生在这个新的JavaScriptServices模板中,而不是一个vanilla Angular项目。

1 个答案:

答案 0 :(得分:5)

我在app.module.shared.ts中注册的服务遇到了同样的问题。似乎通过依赖注入创建了服务的多个实例(单例),这导致了错误(错误消息根本不暗示这一点)。 我使用来自NGMODULES docs on angular.io的信息修复了它,通过创建一个仅将服务注册为提供者的模块。

import { NgModule } from '@angular/core';
import { MyService } from './components/shared/my.service';

@NgModule({
    providers: [MyService]
})
export class CoreModule { }

然后我将CoreModule添加到app.module.shared.ts中的导入

imports: [CoreModule]

虽然它确实修复了" No Provider"问题,我的服务有问题,使http调用,但这可能与您的问题无关。