我正在创建一个实现 ControlValueAccessor 的组件以在反应式表单中使用,它只是一个输入元素的包装器,上面有一些管道。
我注入了 NgControl 以检索有效/无效状态并将它们传播到内部输入元素。
当输入值在另一个输入中找到时,它是无效的。
在 Stackblitz 上工作正常,但是当我进行ng build --prod时,它会引发错误:
错误:没有 NgControl 的提供者(“[ERROR ->])
你看有什么问题吗?
谢谢!
我正在创建一个实现 ControlValueAccessor 的组件以在反应式表单中使用,它只是一个输入元素的包装器,上面有一些管道。
我注入了 NgControl 以检索有效/无效状态并将它们传播到内部输入元素。
当输入值在另一个输入中找到时,它是无效的。
在 Stackblitz 上工作正常,但是当我进行ng build --prod时,它会引发错误:
错误:没有 NgControl 的提供者(“[ERROR ->])
你看有什么问题吗?
谢谢!
您好,您可以为您的 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;
}