Angular 6: Custom Validator, чтобы убедиться, что хотя бы один файл выбран пользователем - PullRequest
0 голосов
/ 25 сентября 2018

Функция, позволяющая убедиться, что пользователь выбрал хотя бы один критерий выбора

identityRevealedValidator = (validator: ValidatorFn) => (
    group: FormGroup,
  ): ValidationErrors | null => {
    const identityRevealed = group && group.controls && Object.keys(group.controls)
      .some(k => !validator(group.controls[k]));

    return identityRevealed ? null : {
      identityRevealedValidator: true,
    };
  };

Использование функции:

{ updateOn: 'submit', validator: this.identityRevealedValidator }

Использование внутри формы:

<form [formGroup]="form"> 
          <div class="form-row">
            <div class="col-md-12 text-right mt-3">
              <button type="submit" class="btn btn-primary" [disabled]="!form.valid">Search</button>
              <div *ngIf="form.errors?.identityRevealed && (form.touched || form.dirty)" class="cross-validation-error-message alert alert-danger">
                  PLease select one Field
              </div>
            </div>
          </div>
        </form>
...