我们有一个表单,其中两个字段具有相同的formControlName。一次只能看到一个字段,并且以下逻辑将应用验证器-
let validators: ValidatorFnUtil[] = [];
validators.push(CustomValidators.validateNumberGreaterThanZero); //custom validators
const control = this.accountForm.get('shares');
control.setValidators(validators);
control.updateValueAndValidity();
在模板中-
<mat-form-field >
<mat-label>{{ 'quantity' | translate }}</mat-label>
<input
type="number"
formControlName="shares"
matInput
/>
<mat-error *ngIf="formErrors.shares">{{
formErrors.shares | translate
}}</mat-error>
</mat-form-field>
加载表单时,我们设置字段的验证器并按要求工作,它验证字段是否为负值并突出显示该字段。执行滑块时第二个字段可见,而前一个字段被隐藏。现在,对于这个新领域,验证器不起作用。如果切换回先前的状态,则适用于先前的字段。