假设我需要在我的 Angular 项目中使用 External(我无法更改或使用其他)ChildComponent
,该项目将在 other 中使用ParentComponent
。
ChildComponent
不实现ControlValueAccessor
和Validator
接口。
但我需要使用Validation
,但我无法将它与本地人联系起来FormControl
,FormBuilder
例如:
this.formBuilder.group({
childComp: ['', [Validators.required, Validators.minLength(1)]],
}
在我的 HTML 中,它应该类似于:
<my-child-component
matInput
formControlName="childComp"
[required]="formGroup.controls.childComp.invalid"
#idChild
>
</my-child-component>
但是,我不能像以前一样使用formControlName="childComp"
和[required]="formGroup.controls.childComp.invalid"
。
因此,在我的 HTML 模板中,我只能使用:
<my-child-component
#idChild
>
</my-child-component>
<mat-error *ngIf="childFieldErrorValidation">
The Custom Error Message
</mat-error>
<mat-hint>Custom Hint Message</mat-hint>
如何将验证器的行为ChildComponent
添加到添加到表单中的控件的外部?
如果我有一个提交按钮:
<button
mat-raised-button
(click)="onSave()"
color="primary"
[disabled]="formGroup.invalid"
>
Save
</button>
由于缺乏验证合规性,是否可以禁用该按钮?
或者,如果无法禁用按钮,是否可以在 Modal 组件(.ts文件)上完成?
单击按钮后如何验证(显示错误消息)?
编辑:我正在阅读这个 ⁷<a href="https://stackoverflow.com/a/46369930/811293">问题及其答案,但与已添加到FormGroup
. 这是一个不同的情况。