【问题标题】:What can be the reason for next error "No Provider for NGControl" in angular?Angular中下一个错误“No Provider for NGControl”的原因是什么?
【发布时间】:2021-08-09 22:46:07
【问题描述】:

当我运行命令 ng build --prod 时,我收到错误 ERROR in No provider for NgControl ("[ERROR ->]<multiselect></multiselect>"),运行 ng buildng serve 时没有显示错误。

这是multiselect 组件构造函数的代码,NgControl 注入为@Optional

组件本身在一个地方使用,在表单组件内

multiselect 组件已按照该指南创建:https://v7.material.angular.io/guide/creating-a-custom-form-field-control

我已经看到了一些类似的问题: Angular ERROR in : No provider for NgControl ERROR in : No provider for NgControl Angular AOT ...

以及收集到的建议:

  1. 使用@Optional
  2. 确保将组件包装到表单中

似乎一切都应该没问题,但不是

【问题讨论】:

  • 刚刚检查,你试过thisthis
  • @SanoopSurendran 谢谢你的帮助,是的都试过了,问题仍然存在

标签: angular angular-material


【解决方案1】:

我正在开发 angular 8 应用程序,该应用程序是从 7 版本迁移而来的,其中存在相同的错误。

我已经使用 angular-cli 和 tsconfig 创建了新的空 angular 8 项目,我发现 angular 7 和 angular 8 之间存在一些差异,我已将它们应用到我的项目中。然后错误信息改为annotationCIs is not a constructor,然后我google了https://github.com/angular/angular-cli/issues/15395

最后的问题是Optional是从ag-grid而不是@angular/core导入的,我发现有些地方导入错误,把它们改成

// were
import { Optional } from `ag-grid`;

// become
import { Optional } from `@angular/core`;

这个问题已经解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-09
    • 2017-10-21
    • 2023-03-26
    • 2018-05-31
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多