Угловое (2/4/5/6) пользовательское сообщение об ошибке валидатора не отображается - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь, чтобы мой валидатор правильно отображался с помощью настраиваемого валидатора формы, но я не уверен, как его вызвать.Я попытался BroadcastForm.controls.errors.customTimeValidator () в HTML-сторону, но он не работает правильно.Благодарим Вас за помощь!

broadcast.component.ts

ngOnInit() {
    this.BroadcastForm = this.fb.group({
        datetime: [
            datetime,
            Validators.compose([Validators.required, this.customTimeValidator()]),
        ],
    });
}

customTimeValidator(): ValidatorFn {
    return (control: AbstractControl): { [key: string]: any } | null => {
        const minDate = new Date();
        minDate.setSeconds(0);
        this.minTime = minDate.getTime() + 59 * 1000;
        const forbidden = control.value <= minDate;
        return forbidden ? { forbiddenName: { value: control.value } } : null;
};
}

broadcast.component.html

<div class="validation-error" *ngIf="
   BroadcastForm.controls.datetimeOption.value === 'false' &&
   BroadcastForm.controls.errors.customTimeValidator()"> //how do I call customTimeValidator correctly?
   Please select a future date/time
 </div>

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Извините, принятый ответ отвратителен как для просмотра, так и для использования.

Используйте что-то более простое, чистое и задокументированное:

BroadcastForm.get('datetime').hasError('forbiddenName')
0 голосов
/ 13 февраля 2019

Изменить это

BroadcastForm.controls.errors.customTimeValidator()

на

BroadcastForm.controls['datetime']['errors']['forbiddenName']

На самом деле вы можете найти все ошибки, используя json pipe

{{ BroadcastForm.controls['datetime']['errors'] | json }}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...