【问题标题】:Prerendering failed because of error: TypeError: _angular_core.InjectionToken is not a constructor由于错误,预渲染失败:TypeError: _angular_core.InjectionToken is not a constructor
【发布时间】:2017-04-20 14:38:17
【问题描述】:

我正在使用 VS 2017 和 Angular 2 + asp.netcore 模板开发一个项目。默认项目运行良好,但是当我在 app.module.ts 中导入 ReactiveFormsModule 时;它抛出错误

预渲染因错误而失败:TypeError: _angular_core.InjectionToken is not a constructor

根据堆栈跟踪,错误在 ..\ClientApp\dist\main-server.js 文件中。

我已将项目从 Angular 2.4 升级到 Angular 4.0。我无法理解为什么导入会引发这样的错误。

【问题讨论】:

  • 发生错误的原因是,在我导入 ReactiveFormsModule 后,main-server.js 文件中添加了以下代码行:var NG_VALIDATORS = new _angular_core.InjectionToken('NgValidators'); 我在这里遗漏了什么吗?
  • 您找到解决问题的方法了吗?我面临着完全相同的问题,我不知道如何解决它。
  • 我本身没有找到解决方案。但我所做的是,而不是使用 Visual Studio 中的模板;我创建了一个独立的 Angular 项目(它使未来的升级更容易)和另一个 Web API 项目。与 Visual Studio 的 Angular 模板相比,它是一种更加模块化和更好的工作方法。然后将您的 Angular 编译文件夹重定向到您的 .net 核心项目文件夹,这样您就可以在一个项目中拥有所有部署文件并仅部署 .net 核心项目,您就可以开始了。
  • 是的,我认为这是一个更好的主意,感谢您的反馈

标签: angular visual-studio-2017 asp.net-core-1.0


【解决方案1】:

我遇到了和你一样的错误,但它发生在我将引导程序从 3.3.7 更新到 4.0.0-beta2 之后。

在我安装了最新的 Visual Studio 更新(在我的例子中是 15.5.1)之后,问题就消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    • 2019-07-15
    • 2018-05-24
    • 2021-12-23
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多