将FormControl验证器角度传递到子组件



我有两个角度组件。

父级.ts子级.ts

Parten.ts有一个Form组,child.ts在通过CVA将Form日期传递给父级。

现在我想构建一个可重用的子组件,以便能够生成child1.ts,child2.ts,…

到目前为止,这一切都很好,我必须构建这样的多个组件。

现在我遇到的问题是,有些子组件是必需的,有些不是。

如果我在父组件中提供验证程序,则验证有效,如果字段为空,则表单无效,但子组件本身没有从父组件传递验证状态。ts,因此保持有效。

这导致子级不显示ng-error消息。

如何将验证状态从父级传递给子级以显示错误消息?

这样提供您的CVA:


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

并从@Component装饰器中删除providers

如果你这样做,你就可以访问

this.ngControl.control.valid
this.ngControl.control.invalid
this.ngControl.control.pending
this.ngControl.control.status

这应该会让你随时了解你的CVA状态。

最新更新