繁体   English   中英

Angular(2/4/5/6)自定义验证程序错误消息未显示

[英]Angular(2/4/5/6) Custom validator error message not showing

我正在尝试使用表单自定义验证器正确显示验证器,但我不确定如何调用它。 我在html端尝试了BroadcastForm.controls.errors.customTimeValidator()但它无法正常工作。 感谢您的帮助!

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>

改变这个

BroadcastForm.controls.errors.customTimeValidator()

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

实际上你可以使用json管道找到所有错误

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

我很遗憾地说,接受的答案很恶心,无论是看也可以使用。

使用更简单,更清洁和记录的东西:

BroadcastForm.get('datetime').hasError('forbiddenName')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM