如何将验证器重新应用于具有相同名称的formControl

时间:2019-08-14 05:39:25

标签: angular angular-validation angular-validator

我们有一个表单,其中两个字段具有相同的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>

加载表单时,我们设置字段的验证器并按要求工作,它验证字段是否为负值并突出显示该字段。执行滑块时第二个字段可见,而前一个字段被隐藏。现在,对于这个新领域,验证器不起作用。如果切换回先前的状态,则适用于先前的字段。

0 个答案:

没有答案