Как сделать отключенный ввод также обязательным с угловой реактивной формы? - PullRequest
0 голосов
/ 22 мая 2019

У меня есть ввод, который будет заполнен, когда пользователь нажимает на диалоговое окно. Поэтому для этого мне пришлось отключить его, потому что я не хочу, чтобы пользователь вводил значение вручную. Единственная проблема заключается в том, что этот ввод должен быть обязательным, и я пока не могу его сделать.

Я попытался добавить директиву required во входные данные, а также попытался добавить Validator.required при создании формы, но ни один из них не сделал поле обязательным для формы.

createUnityForm(): FormGroup {
    return this._formBuilder.group({
        id      : [this.unity.id],
        description: [this.unity.description],
        floor: [{value: this.unity.floor, disabled: true}, Validators.required]
    });
}

<mat-form-field appearance="outline" floatLabel="always" class="mr-16" fxFlex>
    <mat-label>{{'UNITY.FLOOR' | translate}}</mat-label>
    <input matInput placeholder="{{'UNITY.SELECT-FLOOR' | translate}}"
        name="floor"
        formControlName="floor"
        required>
</mat-form-field>

<button *ngIf="action === 'edit'"
    mat-button
    class="save-button"
    (click)="matDialogRef.close(['save',unityForm])"
    [disabled]="unityForm.invalid"
    aria-label="save">
        {{'GENERAL.SAVE' | translate}}
</button>

unityForm действует, даже когда на входе ничего нет

1 Ответ

0 голосов
/ 25 мая 2019

Если вы установите FormControl на disabled, его валидаторы будут игнорироваться.

Подробнее: https://angular.io/api/forms/AbstractControl#disabled

...