Angular ERROR in:NgControl没有提供者

时间:2019-03-21 08:16:26

标签: angular angular-reactive-forms controlvalueaccessor

我正在创建一个实现ControlValueAccessor的组件,该组件将在Reactive Form中使用,它只是一个带有一些管道的输入元素的包装。

我注入了NgControl以便检索有效/无效状态并将其传播到内部输入元素。

在另一个输入中找到输入值时,该值无效。

Here is the Stackblitz

在Stackblitz上工作正常,但是当我使用 ng构建--prod 时,会引发错误:

  

错误:没有NgControl提供者(“ [ERROR->])

您看到任何问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您好,您可以为NgControl添加“ @Optional”装饰器。如果找不到提供程序,它将使用 null 。有关更多信息,请参见:https://angular.io/api/core/Optional

在您的代码中:

import { Component, Input, OnInit, Self,Optional } from '@angular/core';

...
      constructor(
    @Self() @Optional() private controlContainer: NgControl
  ) {
    this.controlContainer.valueAccessor = this;
  }