【问题标题】:No provider for Guard with ASP.NET Core Angular Spa project JavaScriptServices没有提供 Guard 与 ASP.NET Core Angular Spa 项目 JavaScriptServices
【发布时间】:2017-05-23 04:42:41
【问题描述】:

我收到了错误: 没有 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 模板中,而不是普通的 Angular 项目。

【问题讨论】:

  • 请添加相关代码
  • @yurzui 真的没什么可补充的。该问题与使用 JavaScriptServices 创建的最新 ASP.NET Core Angular 模板直接相关。他们将 app.module 分解为 3 个单独的文件。如果我将 Guard 作为提供程序添加到 app.module.server.ts 文件,错误似乎消失了。很奇怪..不知道为什么它在 app.module.shared.ts 文件中不起作用。

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


【解决方案1】:

我在 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]

虽然它确实解决了“无提供者”问题,但我的服务存在问题,它会进行 http 调用,但这可能与您的问题无关。

【讨论】:

  • 这一切都是因为这个 asp.net core spa Angular 模板?我还遇到了另一个问题,由于服务器上的 asp.netcore 项目进程,localStorage 未定义。这正在成为一种真正的痛苦。我正在讨论是否要在我的 UI 中坚持使用原版 Angular。
  • @BlakeRivell 我在本地存储中遇到了类似的问题。你查到真相了吗?
  • @mjo 我不知道你是如何在 angularspa 项目中得出这个结论的,但这就是我想要的服务..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 2020-02-12
  • 2021-10-15
  • 2020-11-29
  • 2018-02-15
  • 1970-01-01
  • 2018-04-28
相关资源
最近更新 更多