0

假设我需要在我的 Angular 项目中使用 External(我无法更改或使用其他)ChildComponent,该项目将在 other 中使用ParentComponent

ChildComponent不实现ControlValueAccessorValidator接口。

但我需要使用Validation,但我无法将它与本地人联系起来FormControlFormBuilder例如:

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. 这是一个不同的情况。

4

0 回答 0