我正在创建一个实现ControlValueAccessor的组件,该组件将在Reactive Form中使用,它只是一个带有一些管道的输入元素的包装。
我注入了NgControl以便检索有效/无效状态并将其传播到内部输入元素。
在另一个输入中找到输入值时,该值无效。
在Stackblitz上工作正常,但是当我使用 ng构建--prod 时,会引发错误:
错误:没有NgControl提供者(“ [ERROR->])
您看到任何问题吗?
谢谢!
答案 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;
}