Angular ERROR in : No provider for NgControl

use*_*955 2 angular angular-reactive-forms controlvalueaccessor

我正在创建一个实现 ControlValueAccessor 的组件以在反应式表单中使用,它只是一个输入元素的包装器,上面有一些管道。

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

当在另一个输入中找到输入值时,它是无效的。

这是 Stackblitz

在 Stackblitz 上工作正常,但是当我进行ng build --prod 时,它会引发错误:

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

你看到任何问题吗?

谢谢!

Mul*_*isS 11

您好,您可以为您的 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;
  }
Run Code Online (Sandbox Code Playgroud)